Learning to Code: The Hard Way
(The “WHAT NOT TO DO” Guide For New Coders)
This document was created from my own personal journey into programming and handling data. The purpose of sharing this experience, I hope, is that I may keep you from making the same mistakes that I made while learning to code. Many of you may already have backgrounds in programming and similar technologies, but I did not. As an avid self-learning student, I took to learning JavaScript then Automation with no prejudices or preconditioned knowledge. What a grand adventure it has been.
Lesson 1: Asking The Wrong People For Help.
Look for those who come before you, individuals with life EXPERIENCE coding (not just knowledge) in the real world rather than just in an institutional setting. You want to learn from people who have been paid for their work, and thus, have learned to reflect the needs of the market in terms of business needs rather than the possibilities of what could be done. We all begin as dreamers, but dreaming is not going to pay the bills without business experience. Don’t code alone all of the time. Technology is ever-changing, and being so, it requires frequent updates. Check in with your colleagues or coworkers to see how/what they’re doing with their code. You may learn something, or discover that something has been updated while you were practicing your hermit skills.
Lesson 2: Code, Code, Code, and Code Some More!
Be aware of yourself, and when you begin to “burn out” while learning new subject matter. Coding any language requires a lot of knowledge that isn’t always applicable from the start or on every single project you use. Some of it will be tucked away in your memory for a while, so committing to ALL of that knowledge from the start is a surefire way to burn out. I’m the type of person who wants to know EVERYTHING from the starting line, and there is just so much information (that changes frequently) when learning to code so trying to encompass everything at once is impossibly frustrating. I worked myself in circles over things that were relatively simple to do. There is no test, just quality code. Anxiety will have you thinking you’re not good enough, that’s normal, keep going.
Lesson 3: Setup AFTER Watching the Videos.
Coding is “hands on” and it should be learned this way. Reading or watching a bunch of videos in a row will not make you a better programmer. You need to walk-through each step which can be time consuming. I had to restart over and over, and it wasn’t because I didn’t understand the content. I had to start over, because I needed to make sure all of the dependencies were correct or I was using the right language. Subtle differences in programming can change the whole flow, so pay attention to the nuances.
Lesson 4: Code Now, Clean Up Your Files Later…
Not organizing your files? Make sure you understand what “dependencies” are, how to set them up, and how to make sure they’re where they are supposed to be. I don’t know how many times I had to restart a project because something was either missing, outdated, or in the wrong location. The computer can only do what it has the tools, and commands for. Code is updated all of the time. This is where Github is your friend. Don’t let your code become cluttered, outdated, or corrupted by not maintaining your dependencies. Be sure to write code with this in mind, good code can become obsolete despite how well it’s written, when the business requirements are updated or changed.
Lesson 5: Buy ALL the Equipment!
You don’t need to have an entire surveillance van to learn code. There are lots of ways to learn code. You can learn in an institution, online, at work, from peers, or even on your phone (yes, there’s an app for that!). Buying a bunch of technology will only hinder your focus. Remember, we’re keeping it simple. You don’t need to call the space station with your computer, but instead, focus on what software you need to get started in the industry you’re coding for.
Lesson 6: Stake Your Confidence On Your Achievements…
“It’s business, not personal.” The age-old advice of our ancestors. You can’t take your programming journey personally, or you’ll end up blocking your progress. Again, this happened to me. Imposter Syndrome happens, and it can happen to you if you invest without keeping track of your progress (and celebrating it from time to time) you’ll find that you’ll want to give up. You’ve got this. Keep going!
Lesson 7: Don’t Worry About Capitalization. It's all good...
Pay attention to your characters. Capitalization, for example, matters. Code requires specific commands so you need to make sure you’re using the right characters. When learning, it’s easy to get caught up in the moment and dismissing nuances - but it will be those nuances that elevate your programming skills.
Lesson 8: Never Make Mistakes.
Own your mistakes. My sophomore year of college, I was awarded an art scholarship because of my ability to make a mistake into art. Our ability to manage our mistakes defines our ability to problem solve. It becomes a signature, a skill that we can hone. Programming requires you to become a problem-solver (if you aren’t already thinking this way) and to open up about your mistakes. Everyone makes mistakes, but you don’t want to believe your code is perfect. There will always be room for improvement in an organic environment, and while technology isn’t typically considered organic - the nature of an agile project is always changing thus very much like nature herself.
Lesson 9: Skipping Lunch.
Step away from those keys! Many programmers spend hours upon hours at the computer. However, the problem-solving skills needed to achieve solutions to complex problems tend to happen away from the screens. The human brain needs oxygen. Go outside, take a walk, breathe. Don’t skip lunch!
Lesson 10: Learn EVERYTHING at Once.
Ask “why” but don’t stay there. In order to understand the full history of programming, and each language - you could spend a lot of time researching each and every avenue - but you don’t have to in order to start writing code. This one, I wish I knew when I started. I’m very much a “why” person, and so I spent way more time learning about the history of code than actually coding. You will not learn everything right away. It takes a long time to fully understand software engineering and development. Don’t fret, you just need some working knowledge. You can still do research as you, and that’s the beauty of code.
Lesson 11: Download ALL of The Tools.
Customize your own toolset. I’m a “why” person, so naturally, I downloaded everything I could find relating to coding whether I needed it or not. Don’t do this. You’ll just waste time on tools you won’t use. Pick an IDE and language that you like (ex: Eclipse, VisualCode, RStudio, Python, Selenium) and just confirm that it does what you need it to. GitHub is a great resource, and it’s more than just a repository. Spend some time there exploring beyond your Github tutorials. Create a profile. Immerse yourself.