• Quinten Becker

45 Astonishing Things I Wish I Would Have Known About Coding

When I first started to program, I went through many phases. At first, I got that IV hit of “Hello, World!” and I felt like a god among men, no longer bound to the same plane of existence of plebs who just use their computer. “Wow is it really this easy? I know what I’m doing.” I thought.

Then things got a little more complex. I started learning about variables, primitive data types, looping, parsing input, and maybe error handling. Quickly I realized just how little I knew. It was daunting, every time I tried to write code...it seemed like I was going through the five stages of depression. If that wasn't enough to intimidate me, I was introduced to things like object-oriented programming...all of it makes sense but you’re not really sure why those things would be THAT helpful, it all gets more confusing. That being said, stick it out, and eventually, there will be a moment where it all clicks, every programmer I know has said they experienced the click or a series of small clicks that cascaded into an understanding of the fundamentals. Unfortunately, after that click, you realize how you know even less than you initially thought.

So, in attempt to save you some time and grief, I have laid out some tips, tricks, and words of wisdom that I wish I had known during my journey to becoming a software engineer. I have laid it out into three stages (There are more stages but I am still a noob):

Greenling: Stage 1

(When you’re just starting to stretch the fingers and learn the basics)

  1. Practice every day.

  2. Understand that you’re not going to be making the next Facebook right off the bat, realistically you’re going to be reversing strings and sorting numbers.

  3. Find someone who can work with you when you get stuck.

  4. Get an introduction book and do the exercises at the end of the chapters. Try to pick books that focus on fundamentals and avoid books that try to introduce you to UI’s.

  5. After you finish the book go back through the exercises and see if you can do it without reading the chapters. Rinse and repeat.

  6. Avoid using IDE’s when possible. It makes your life more difficult but you'll learn more.

  7. Don’t just copy and paste code. Understand what you’re doing. If you don’t understand, ask.

  8. If you ask a question to someone and don’t understand their answer, ask again, change the way you ask the question until you understand their answer.

  9. Don’t start out learning with something like Android or IOS programming. They have fancy features that you’ll just have to accept at face value unless you understand what is going on under the hood.

  10. Start with a verbose language like Java because there is less ambiguity. Everything needs to be explicitly written out. No frills or magic.

  11. Don’t try to sell anyone anything yet, you’ll over promise and under deliver.

  12. You’re going to stay in this stage for about a year.

Beginner/Hobbyist: Stage 2

(You’re competent enough to really screw things up. You can contribute to some open source projects without getting the nerd herd chewing you out. You would be able to get an internship or pass an entry level coding interview)

  1. Practice every day.

  2. Start to do personal projects that can be completed within a week, be realistic.

  3. Don’t be afraid of the command line, it’s vital.

  4. Learn how to use Git.

  5. Try new programming languages.

  6. Learn to RTFM(Read The Fucking Manual) you’d be amazed at what you can learn by just reading the manual.

  7. Stack overflow is an excellent resource but avoids copying and pasting code you don’t understand.

  8. Learn to conform to the coding style of the project(such as { on the same line as the function name vs the next line down)

  9. When contributing to an open-source project realize that people can be very opinionated and will tear you to shreds over a space vs a tab.

  10. Be wary of people who think they know everything and use big confusing terms when trying to explain something simple. If it feels like they are talking down to you, they probably are. Remember that “Algorithm” is just a fancy word for “A step by step solution to a problem in a finite number of steps.” immutable just means non changing.

  11. Feel free to reinvent the wheel just because you can. Rewrite a JSON parser, write your own socket server. Break things.

  12. Try your hardest to understand object-oriented programming. Learn the four pillars. Try to apply them in your personal projects.

  13. Learn how to unit test.

  14. Don’t pick a programming language because it's what you know. Most languages can do almost any task. Learn how to choose the right programming language for the job. Don’t use a drill when you need a hammer.

  15. Expect to stay in this stage for 2 or 3 years.