Journal Articles
Browse in : |
All
> Journals
> CVu
> 266
(9)
All > Topics > Programming (877) Any of these categories - All of these categories |
Note: when you create a new publication type, the articles module will automatically use the templates user-display-[publicationtype].xt and user-summary-[publicationtype].xt. If those templates do not exist when you try to preview or display a new article, you'll get this warning :-) Please place your own templates in themes/yourtheme/modules/articles . The templates will get the extension .xt there.
Title: Advice for the Young at Heart
Author: Martin Moene
Date: 07 January 2015 21:35:41 +00:00 or Wed, 07 January 2015 21:35:41 +00:00
Summary: Pete Goodliffe offers sage advice, and asks you to do the same.
Body:
Not long after my latest book, Becoming a Better Programmer, was published I was contacted by a student programmer from the Philippines. He wanted to improve his software design and programming skills, and tracked down my contact details to ask for personal advice. His simple question was: how best to learn the art of programming without being on a Computer Science course, and without access to mentors within the industry.
It’s a great question.
It’s a great question, not just for the answer being sought, but because of the motivation for asking:
- If you’re investigating how to get better, if you care about learning and improving, then the battle is won. Whilst apathy breeds sloppy careless coders, those who make a conscious decision to improve their skills will inevitably grow. Success stems from motivation.
- If you are prepared to actually do something, to reach out and contact others, to make some effort to improve, then the battle is won. Information won’t come to you. It takes deliberate effort and investment to improve.
Are you putting in this deliberate effort, and committing yourself to learning and improving your craft?
This was my answer to the budding coder:
If you’re not on a Computer Science course, and don’t have access to a mentor, then your best bet is to read widely, and practise, practise, practise. The more coding you do, the more mistakes you make, the more you’ll learn. And the more fun you’ll have coding, too. (The best graduate programmers have real experience under their belt, not just academic theory.)
Grab some good general programming practice books (like mine, for example!), Clean Code (Bob Martin), plus some of the classics like Design Patterns, Refactoring, and so on. Devour them, and apply what they say to your code. There are many ‘classics’ in the field that are not hard to find. Also new classics like 97 Things Every Programmer Should Know.
Dive into some decent sized open-source projects where you can immerse yourself in Real World code-in-the-large, and can make public, demonstrable changes. Set up a GitHub account, and publish the things you work on there.
Seek out code katas, and invest time in deliberate practice.
Start a blog, and document your journey of learning.
Are there any developer user groups near you that you could join? They often run evening events that are worth going to, to learn and to meet other coders.
Don’t worry about the academic course you’re currently on; some of the best professional programmers I’ve had the pleasure to work alongside have not been Computer Science graduates, but people who qualified in other subjects (like Physics and Engineering disciplines).
Good luck. And enjoy the journey!
That was an answer from the top of my head. I wonder what you'd add, or suggest differently?
Questions
- What would you say to someone fresh entering the field? What advice would you give? What do you think have I missed?
- Think back: what things helped you improve most as a programmer?
- Is motivation to improve genuinely more important than technical skill? Can one be be learnt or ‘caught’ more easily than the other?
- In 2015, how are you going to improve as a programmer?
- Is there anyone you can give advice to, to mentor them, and help them improve? Is your excitement for programming and your motivation to seek to improve clearly seen by your peers?
Notes:
More fields may be available via dynamicdata ..