Everyone who started coding started out pretty much in the same seat as you. It can be extremely frustrating. A lot of people tend to give up when they start teaching themselves to code. It can be overwhelming, and not bearable at times. That's why the CTO and Co-found of TheFireHouseProject.com were nice enough to tell us 20 things to know before you start programming.
Here are the top things to know before you start programming:
- You learn by doing
- Programming is not like studying for a test
- Cheating is very well acceptable
- Letting problems pile up is a poor strategy
- You do not need 5 monitors
- Pair programming as much as possible
- There's a right way to ask for help
- Always celebrate small wins
- Never stop learning
Memorizing does not apply on programming
You learn by doing is on the first place of “20 Things to know before you start programming” list for a reason. The only way to get better at programming is to actually code. Do not let paralysis prevent you from starting. Ever.
Programming is not like studying for a test by a mile. When you study, you memorize things in order to get a better grade. This does not apply to programming, at all. It doesn't matter at all if you forget how to do a switch case, or an if/else statement for that matter. As long as you know that something does that, you're golden.
Cheating is completely acceptable. Hell, it's even encouraged. The top programmers I've had to deal with use Google on a regular basis. This way, you'll save tremendously much time on trying to fix something yourself. This doesn't mean that you shouldn't write any piece of code on yourself. But, if you're stuck Google is your friend.
Letting problems pile up is the poorest strategy there is. I used to make countless changes on my code and expected it to work right away with no errors. The problem with this path is that it stacks problems one over another. It will become difficult to deal with them because you will not know where the problem is. So take them one by one.
Your ego doesn't have a place while you're learning to code
Let go of your emotions. You're going to see errors on your journey to programming a lot. A lot lot. You'll even get familiarized with them. When screwing up is such a big part of the process, you have to be okay with the mistakes you made. Don't hold grudges, as you'll only lose time and patience.
You don't need 5 monitors. Can't stress that enough. Despite what Hollywood shows on movies, you never need an insane external monitor to be a programmer. The computer you're on right now is probably good enough for you to start programming. Don't waste money on something that might not be useful. I've been using 2 monitors for the past 15 years and I'm pretty okay.
Capitalization matters. It took me a while to understand this. There's a subtle difference between similar symbols, and it can be pretty frustrating until you get used to it. I remember pointing out to the computer “Hey, here's the variable I declared. Are you blind?”
Trying to understand everything is a lost cause. In the beginning, you're full of energy. You chase down the “why” of every single problem you encounter. This is not necessary by a mile. Computers are so complex and there is a sea full of things to learn. And you're never going to know everything. And that's really okay.
Pair the program as much as possible. There's no faster way until to this day to learn how to code. Pair program as much as you can, and you'll be amazed at the results.
Ask for help without feeling embarrassed
Changing code is a huge part of the process. I used to think back in my young days that every piece of code I wrote had to be perfect. But making improvements to your code is normal. Hell, it's essential. You're not writing a book that can't be changed once it's published. So if you feel like your code might run faster another way, do it.
There's a right way to ask for help. Everybody has to ask for help at some point in their career. And when you do, remember these four things:
- Overcommunicate details that you see
- Explain just what's happening, nothing more
- Explain what should be happening
- State why you think it has to be working differently
Go through this process, and you'll often come across a solution without having to ask for help. It makes you think about your problem in a holistic way.
You don't have to be a math genius. If you're not a math person, or into math at all, it doesn't mean that you won't succeed in programming. It's a huge advantage if you do, but if not, it's not an indicator that you will fail programming. I know someone who doesn't know how to multiply numbers without a calculator and he excels in Python.
Always celebrate small wins. Building stuff with code is extremely cool. I would've never arrived where I'm at if I hadn't celebrated every win. It's amazing to see how well your code runs once you optimize it. And it's a very powerful tool to pat yourself in the back if no one is doing it for you.
Meet-ups are extremely valuable. In the beginning, I found it pretty intimidating to get myself to the point where I found myself comfortable enough to attend these. But once I did, I realized that there were a lot of programmers just like me. And you will be amazed by how many people are going through the same things as you.
It's okay to make big mistakes
Avoid merge conflicts and you'll be happy. Merge conflicts are probably the most annoying thing that can happen. Especially on a Friday. When I realized that I could sneak a feature in before a teammate so that he has to deal with it instead of me, I was super excited. This isn't the most morally advise I give, but it helps.
It's okay to admit what you don't know. When you land your first programming job, you might stick to the “fake it till you make it” agenda. Don't. Nobody expects you to know everything right away. And the truth will get you farther than a lie ever will. Don't expect people to believe you know everything on your first job. Having the ability to know it's okay is crucial to the “20 Things to know before you start programming” list.
It doesn't take 10,000 hours to land a good job. There's a saying “you need 10,000 hours of work to be good at something”. This doesn't apply to programming at all. In reality, you need to be good enough to know how to self-correct and get back on track when some problem arises. And, this goes without saying, that it takes less than 10,000 hours.
You're going to wake up thinking about code. And when it happens, it's amazing. You'll find out that you love what you're doing. In fact, you're loving it so much that it's the first thing you think about when you wake up.
It's okay to make big mistakes. I once made a mistake so big that it cost my company $10,000. And in the process, I realized the most important lesson of my programming language: it's okay to make mistakes. Through this mistake, I realized what I shouldn't do. Ever. And I passed this lesson further below and we never had to pay $10,000 again.
Do you want to add something to the “20 Things to know before you start programming” list? Contact us and let us know!