If I Could Go Back to the Start: 10 Things I Learned About Coding by: Matthew Levin
Tags: beginners, programming, codenewbie, learning
Published: 2023-10-19 18:06:56

1.	Organization is Key: 

You will here things repeated by different people you meet along the way in your coding journey. Different people will also tell you many different things that will vary from one person to the next. It is important to always understand everyone is different, and things wont be the same for one person to the next. But I am certain that from a beginners standpoint, Organization is Key. I've actually had people tell me it is important to not focus to much on taking notes and organizing them as all collectively as you move forward and to just learn and do it....I even tried to stick with doing this for a short period of time. But for me and i suspect for many people, good notes are key to my success and equally important, organizing your notes and documents, is just as much of a key to my success as taking good notes in the first place. I found out very early on, if you don't have an efficient note taking and organizational system in place, things will get very messy fast. The amount of material we burn through during a full stack development program is astonishing. It is super easy to lose control of your notes to the point where you have way to many documents stacking up filled with many many pages of notes and you can no longer find where things are when you need them. If you have 100 documents all filled with many pages of notes and I'm just looking specifi

2.	Time Management and Preparation: 

So for starters, giving yourself the truly correct amount of time to prep for things starting with the actual prep course all the way back before it all started, is crucial. Assuming that you went through the prep course, and you will just touch up on things you don’t know still or didn’t comprehend when you circle back to it next or sometime down the line when you have more time, is probably not the best way to go about learning considering the fast pace of this type of program. It is super easy to wake up one day and realize how behind you really are or to severely overlook time and be forced to jump into something you truly were not prepared to begin and having to figure it out as you go in the name of time crunching because you were behind and time caught up, is a recipe to fail.




3.	Importance of Understanding the Big Picture: 

I learned very quickly, that you will here all forms of advice from people as you begin to learn and jump into things for the first time. One thing that stood out to me is a common theme I kept hearing again and again, specially throughout the beginning phases, is to make sure your not spending to much time with learning the bigger picture for many things you learn.  I heard at many points, advice that was directed towards steering me away from spending to much time focusing on the bigger picture and trying to make sense of processes, concepts, and what we are doing. Obviously we are in a time crunch so it is important not to get to caught up on something and not leaving yourself enough time to go through everything.....but without truly understanding the Big Picture on what you are doing, it just will not leave you in a good position to efficiently learn what you need to do  it and truly understanding and remembering what you did. You might be much more prone to relying on memorization to do things without truly understanding everything the code you just wrote does and why it does these things. Ive literally had instructors tell me to not overthink things and spend to much time on trying to  understand the deeper level of things and making sense of it all and that just jumping in and getting wet is the best way to go....Again everyone is different but personally i found it extremely hard to learn and retain anything without thoroughly understand the big picture and the deeper parts of everything we are doing in terms of the real world and what is going on behind the scenes when people are using given code in real world applications....



4.	Micro coding: 

What is Microcoding? Microcoding is a term that I came up with because I'm basically a long time fan of RTG gaming long story short. One of the pinnacles to every good RTG game is the amount of focus you have to give to Micro Economics and Macro Economics. You have to be able to fight the small battles around a map while undertaking small tasks at the same time like scouting or using decoys to trick people etc.....is what the Micro Economic part of these games entails. While at the same time as the Micro, you have to equally balance and perform the Macro Economic part of the game which is keeping your economy in a healthy state while doing everything else you are doing simultaneously. If you do too much of one of these over the other and do not have a proper balance you will fail. If you over macro or micro or vice versa, you will fail. There has to be a correct balance between the two for everything to flow correctly and achieve success. I have found that coding perfectly parallels this concept as you are learning things. If you are micro coding, you are essentially paying too much attention to learning the syntax and methods you are using and making sure that you don't make any mistakes, rather than taking a step back and making sure not to lose site of the bigger picture, simultaneously as you learn the micro part of it. If you lose site of the bigger picture, and are forgetting to macro, it is easy for the syntax to become a blur, to retain less in the end, and to become repeatedly lost in understanding what and why you are doing what ever it is you are doing. If you put the right amount of focus into understanding the bigger picture, understanding and learning the syntax simultaneously will go from intimidating to a routine walk in the park. This all basically leads to my next one.....


5. Don’t let things intimidate you:

Something special to me that I wish I could have understood more clearly early on, is how harmful it is to let anything you are learning here for the first time, intimidate you. Towards the end, it became perfectly clear to me, that as long as you understand the actual process behind what you are doing, specifically what is going on in the real world, behind the scenes, for the code or task you are about to take on, you will be in good shape. Overthinking syntax or being intimidated by syntax or any of the complex methods you come across or worrying about memorizing syntax so you actually remember it, can all actually work against you more than you’ll realize. If you just take a moment to think about everything going on behind the scenes in the real world for the code you are writing….you will quickly realize the syntax is not the biggest deal ironically. If you simply focus more on things like understanding what a user is going to use a site for, the different things the user will do on the site, the buttons they will press, what should happen when they press a button or a link, what they will be doing in terms of all the actions they could take throughout the process of using an individual feature, when they input information and send it to a site, where is that sending and where is that info stored, how is that data retreieved etc….you will realize that stressing about things like syntax is a waste of time….You should be able to tell yourself very quickly, I understand exactly what will be going on in what places as this process folds out, I understand the exact actions the user will take to do something on this site, and in regards to the syntax for coding the actions out that the user will be doing on the site, it becomes a hell of a lot easier to take in and learn at that point. As long as you understand the what’s and why’s, the how’s is just googling and online research. There's a million different ways to do things, but as long as you understand why and what you are doing, figuring out how is usually just some simple research that you get better at doing the more you do it until eventually things like syntax don’t have any effect on you anymore.

6.	Don’t put things off:   

It is easy to delay in doing/learning certain things or to hesitate in getting familiar with things like debugging methods, using basic console log type tools frequently when you code, and  to all the wide range of tools and libraries that are available to us as we are coding things for the first time. It is easy to look at things from a viewpoint where you think it is more practical to just focus on learning something first and all those extra tools, you can just circle back to them later and figure out how to use them. Putting a top priority on learning over things like debugging simultaneously will only harm you as a coder. These tools exist for a reason. Simply put they will make your job easier and make the learning process easier for you overall.  They are 100 percent necessary as a coder, so delaying out of intimidation, makes absolutely no sense. 
 
7.	Listen to yourself above others:

 When it comes to the way you want to tackle something (not all the time but for general things in your coding development journey) start getting used to doing things the way you like or the way that feels the most natural to you, what ever works best. You can always naturally adapt and change as time moves on, you will always discover different tools and ways to do things down the line. My advice in regards to this area is, as you are learning everything for the first time, avoid flip flopping around to fast on learning something one way and immediately switching to doing it a different way because so in so did it that way and said they like this way the best. If you find yourself doing this too much during the learning process you will easily find yourself struggling to retain things efficiently because your brain can get criss-crossed and overloaded. Just finish and focus on one way you are learning to something entirely before learning new ways to do things down the line. Overall, specially if time was not such a factor for us, learning the different ways to do things as you learn from different peers is obviously  a great thing….But one thing I learned is that when you are going through something like a Software Development Camp, if you are not careful, it can be extremely harmful and can ultimately confuse you if you hop around to much with all the different ways to do something without  ever getting the correct grasp on it using the first methods/ways you learned to do it….

8.	Health is key: Of all things to consider this one might come off as the most obvious one that a lot of people I think tend to naturally overlook. Making sure you are staying well rested, well fed, and keeping yourself as mentally balanced as possible will save your life throughout your Software Development learning Journey. Of course this sounds obvious but i promise, many people will still overlook this. 

9.	Planning is key: 

When you are about to tackle projects for your first time, proper planning is beyond crucial! Document EVERYTHING, compile all the things you know you will need to do for a given project into one area, and clearly lay out all the things you can think of that you will need to have to do what you are working on. For example, clearly go through the entire user experience in your head for the site you are trying to build, document every feature you know the user will need to access and use to the things that your site does for them, and compile all the sources you will use, and generate a completion schedule and task management system of some sort and everything else you can think of to aid you, document and compile it! For example even just going through the User process and documenting all the "Requests" period that you know their actions will generate and getting all the Requests down in an organized list before you start building it will give you a massive edge in terms of achieving success. You will find yourself cruising when you have properly done all this off the get go and struggling to move fast enough if you did a poor job at this....



10.	Communication is key:

Possibly one of the most important areas in this realm period is Communication. This becomes especially true when you get to group assignments and projects. Another easy one to underestimate, communication, is KEY!!!!! If your group members are not exactly on the same page off the get go on understanding the project and exactly what your application is doing, why it is doing it, and everything else about it inside and out, it is a good way to experience major problem down the line because your partners were understanding something differently and had different ideas on how something needed to be arranged, set up, done, whatever.....long story short if you are not communicating efficiently from the start, you will likely fail or experience major set backs from group members being to out of synch with one another. The  best example i have is my phase-1 project. I was in a group where a group member i had selected the project idea and it was related to Dungeons and Dragons which is a game that i have never played and no nothing about. He spent the first day trying to smash through code and getting things rolling and spilled everything he would do on us by surprise. When we, the other members, would opt to step in and try to help how ever we could, when you don't even understand a game like Dungeons and Dragons, and your partner jumps ahead, does things, and then gives you brief explanations that use a lot of in game vocab you don't know. Then he explains things in a manner where he clearly assumes we all know everything about the game, IT BECOMES A NIGHTMARE! How do you even help code things if you don't understand the game the app is based off of...how do you write code for a sports app if you literally know 0 about the sport the app is based off of. Long story short, EVERYONE NEEDS TO BE ON THE SAME PAGE PERFECTLY, BEFORE UNDERTAKING AND ACTUALLY MOVING FORWARD ON BEGINNING A PROJECT!