Learning to become a great programmer isn’t something that happens overnight, as a matter of fact – it doesn’t happen in the first couple of years either! Becoming a somewhat good programmer is a time consuming process, it’s difficult, and you’ll want to give up at least a couple of times. But, the lesson here is to stay strong and keep pushing!
It takes “roughly” one to three years to understand programming beyond the very basics.Everyone started out with basic HTML and CSS, and kept at it for a really long time. Then, the concepts became more clear to understand; and writing small programs didn’t seem as difficult no more. You can’t become a great programmer just by reading books, or watching videos on YouTube. You need to practice, if possible – on daily basis.
Things to Know Before You Become a Programmer
1. Personal Learning Experience
The first lesson we need to understand is that no learning experience is ever going to be the same, not only are you going to run into different resources than other people; you’re going to be thinking about different things to create. The best way to go about picking up a new language (even if it’s your first) is to find a “FAQ” book on the language that you want to learn.
Such a book should be read from start to finish without touching the computer, you want to grasp the concepts and understand the language first (even if you can’t remember half of it, you will later on), so look for books titled with the words ‘fundamentals’, ‘introduction’, and other similar phrases.
2. All About Projects
I hope I don’t have to explain to you what a project is, but if you’re going to be learning programming – you need to think of something to create. Why is that? Well, it’s because without a project you’ll be running around blind – making far less progress, and generally programming without an object or end-result. This is bad. You constantly try to stitch things together, but in the end you don’t have anything to show for it.
Start with small applications and websites, learn the basics of positioning elements, or if you’re into software development – build your own web browsers and other cool stuff like that.
3. Know What You Want
You see, it’s really not that difficult to Google the phrase “Learn Python” — I’m not going to check for how many results that phrase returns, but my guess it’s somewhere in the millions! The problem with these phrases is that you’re trying to learn everything at once. You don’t want to learn everything at once.
Now, having a project will help. But, having an idea of what you really want to build is even better. Lets say you’re looking to build a scraper in Python; to scrape the latest song releases from Spotify. It doesn’t matter. What matters is that you search for Python scraping resources, rather than the whole ‘learn Python’ package, because introductory tutorials don’t teach how to scrape, they teach theory and fundamentals.
4. Be Real About It
I’m going to say it anyway, frustration will be busting your nuts quite often when you’re starting out. In order to battle this, you need to set realistic expectations for what you can learn, and for what you can build. You won’t be going on a 12-hour coding spree as soon as you start learning, and you won’t build the next Google in 30-days.
Programming is no different from learning how to sow, how to drive a car, or how to tie a shoe! The difference is in the amount of time it takes for someone to finally get it. How is this going to help you? Well, at least you’ll have heard this advice when you get frustrated. That always helps, doesn’t it?
5. Syntax is Just That!
Yes, syntax is only syntax. You’re not learning to program for the syntax (maybe YOU are), you’re learning to understand the given programming language. You want to know the verbs, and adverbs of the language. You don’t want to learn just the basic words, and not know the meaning for them. By paying close attention to the inside of a programming language, you’ll have a lot less problems with picking up other languages in future.
6. Why Are There Documentations?
Let me tell you why. So you would read them, and learn from them! Every programming language has an official documentation of features, and commands; and in many cases, also examples. Not only that, many programmers (engineers and developers) are more than happy to build their own documentations of a programming language, further adding to the learning resources available.
Reading a documentation might not be the same as reading a novel, but you won’t believe the amount of stuff you’re able to learn, and even brainstorm about when you’re RTFM!
7. Social Coding
Koding, GitHub, StackOverflow, etc,. etc,. You can and should become a part of all these social learning websites. Not only does it give you the advantage of being on top of things about your language of choice, you’re able to communicate freely – both questions and answers. Not everyone has access to mentors, or internships. Not everyone has friends who code. It can get pretty funny!
Being a part of these social communities also allows you to see what other people are programming, and you should always inspect and read code that grabs your attention; especially if it is somehow related to your own project. By the way, this also applies for other types of social communities – like IRC channels for example. The Freenode network is full of channels about your favorite coding languages, and people are friendly and sociable when it comes to help.
8. Get Paid to Program
I doubt there are many people doing this, but once you’ve gotten past the initial learning ‘bump’, you should try and find some freelance work immediately. What this is going to do is give you a bit of an edge to your learning process. You’ll have a client waiting for a project to be completed, which will – hopefully – give you the right energy boost for learning more, and getting done more as well. Elance, Freelancer, etc,. are all great sites for finding developer work.