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. I started out with basic HTML and CSS, and I 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.

Trust me, some of the advice that you can find online is plain ridiculous. You don’t need to be a math genius in order to learn programming, neither do you need a memory like a library. In the modern age, a lot of the stuff that you do is accessible, and you can always rely on notes to remember what you were programming a few weeks ago. The problem starts when big brands start to write about programming, and try to make it sound as difficult as humanly possible. (Yes, credit where its due, but forty-years-old elitists need to start taking care of their grandchildren!)

Things to Know Before You Become a Programmer

I suppose that we’ve looked at some-ten things to keep in mind already, but that’s just the intro! Let me know how some of these have resonated with you, and if you care enough – let me know in the comments about your own journey. I love hearing success stories, even if they started out poorly.

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.

Always start with a project!

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.

Look for specific resources on what you want to build.

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! :) (I wasn’t trying to be rude, just been a while since I used that phrase!)

7. Learn All The Tools!

I know a thing or two about tools, having written hundreds of blog posts that discuss all kinds of tools, apps and other developer resources; I’ve got a pretty good understanding of what kind of tools are out there, and which are the most helpful. Though, that is not the point.

Mastering a new language is rarely just about syntax, symbols, atoms, and semantics. Many languages live within bigger design environments. Part of your learning task involves how to negotiate that environment to build and deploy your products. Always allocate time to explore the tools, documentation, and features that will support you in your daily work. Even if you’re just learning a simple language for fun — a scripting language for example — recognize that that language often exists within a larger environment. // Erica Sadun

8. 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.

9. 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.

10. Student Becomes the Master

This is what you’ll be striving for. You’ll be learning for long enough to start teach others. This is the absolute best way of learning more about that which you do. How to find people to teach? You can try word-of-mouth, or you can try local meetup groups. You can, of course, teach through social websites as well. I know that Quora is a great place for social learning and teaching, many questions there get left unanswered; and all those unanswered questions are opportunities for learning.

Becoming a Programmer

In an instant, you should also check out this post on Medium from Cecily Carver; not only to get a woman’s perspective on how to learn coding, but also to get some additional ideas on how to better approach your newly founded passion.

Do you want to become a programmer? Have you been meaning to become one? You might already have developed other skills and areas of your life, and perhaps you don’t even need to add additional skills to your current ones, but if you want to experience the web and technology in a new way – by all means learn to code something.