I wish I knew a ton of stuff when I started to learn to program, but here are things that come to mind.
a. You learn by doing. The only way to get better at programming is to actually program. Don’t let analysis paralysis prevent you from ever starting.
b. Programming isn’t like studying for a test. Memorizing stuff doesn’t matter all that much.
c. Cheating is completely acceptable. I use Google to solve most of my problems, and so do most programmers.
d. Letting problems pile up without checking is a poor strategy. I used to make endless changes to my code and expected it to work right away. The problem with this approach is that it stacks one problem on top of another and makes it difficult to figure out what went wrong.
e. Learning by yourself is really tough. Talking about code and collaborating with other aspiring developers is a better way to learn for most people.
f. Let go of your emotions. You’re going to see error messages on your journey to becoming a programmer. When screwing up is such an integral part of the process, you need to be OK with making mistakes in order to grow.
g. You don’t need 5 monitors. Contrary to what Hollywood might tell you, you don’t need an insane external monitor setup to be a programmer. The computer that you own right now is probably good enough to use to start programming. Don’t waste your money.
h. There’s a BIG difference between a capital letter and a lowercase letter. It took me a while to get used to noticing subtle differences between similar symbols, and it can be pretty frustrating until you get used to it.
i. Trying to understand everything is a lost cause. In the beginning, I tried to chase down the “why” to every problem I encountered. This isn’t necessary. Computers are so complex and there is so much to learn. You’re never going to understand everything, and that’s OK.
j. Pair program as much as possible. There is no faster way to learn how to code.
k. Changing bad code is part of the process. I used to think that every piece of code I wrote needed to be perfect. But making improvements to your code is normal. You’re not writing a book that can’t be changed once it’s published.
l. There’s a right way to ask for help. Everybody needs to ask for help at some point. And when you do, make sure you do these four things:
Overcommunicate details that you see.
Explain exactly what you think should be happening.
Explain exactly what is actually happening.
Explain why you think it should be working differently.
When you go through this process, you’ll often come across a solution without ever asking for help. It makes you think about problems in a holistic way And You don’t need to be a math genius. If you’re not a “math person,” that doesn’t mean you can’t be a programmer.
m. Always celebrate the small wins. Building stuff with code is really cool. I would never have arrived where I’m at if I hadn’t stepped back and admired the awesome things I was building along the way.
n. Meet-ups are incredibly valuable. In the beginning, it was pretty intimidating to get myself to the point where I felt comfortable attending these. But once I did, I realized that there were a ton of developers just like me.
o. Avoiding merge conflicts makes you happier. Merge conflicts are annoying. So when I realized that I could sneak a feature in before a teammate so that he/she had to deal with these instead of me, I was super excited.
p. It’s OK to admit what you don’t know. Then you land your first programming job, you might be inclined to “fake it till you make it.” Don’t. Nobody expects you to know everything right away.
q. It doesn’t take 10,000 hours to be good enough to land a job. In reality, you just need to be good enough to know how to self-correct and get back on track when problems arise. This takes far less time than 10,000 hours.
r. You’re going to wake up in the morning thinking about code. And when it happens, it’s really freakin’ cool.
s. It’s OK to make big mistakes. I once made a mistake that cost my company US$10,000. In the process, I learned the most important lesson of my programming career: Don’t be afraid to put yourself in a position to make mistakes as long as the risk is worth it. You’ll become a better developer because of it.
t. An algorithm is like finding a name in a phonebook. Algorithms are a step-by-step approach where there is exactly one correct next step. An easier way to think about this is the strategy that you would take to find one specific name in a phonebook. I wrote about that process here if you’re interested.
u. You’re never going to feel like you’re ready to program full time. Imposter syndrome is real. Try to remember that it’s normal to not know everything. The most important thing is understanding that you can figure out the stuff that you don’t know.
v. Programmers never stop learning. New technologies come out all the time, so the programmers that succeed are the ones who continue to learn and develop their craft on an ongoing basis.
w. Make the computer think like a human. Too many people have the impression that you need to think like a computer. It’s actually the opposite.
x. Programming is about using the right tool for the job. There are so many different open source libraries, tools, and frameworks at your disposal. So you need to grow your developer toolkit and understand which tool makes sense for each problem that you encounter.
y. It’s common to give up right before change is about to happen. Learning to code (especially to the point where you can switch careers) is a lot of work. It takes time and a lot of discipline, but it is possible. Too many people make the mistake of doing almost enough work to get where they want.
z. Learning to code isn’t easy. But that’s why it’s worth doing. In hindsight, I’m actually really happy that I was so naive in the beginning. Knowing so little back then gave me the motivation to think critically about everything I learned later on. Now I get to spend time helping other people achieve their goals through code. What could be better than that?
Nice advise for a newbie like myself. I'm trying to self-learn code and I'll tell you it aint easy. If you had to do it again what would be the first program language you would learn? Is there a "base" language for computers (kind of like a piano for music)? I've been learning C.
Good!
Congratulations @tekom! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!