Learning to Code? This is a few things I learned NOT to do
I am going to be as candid as possible so if I curse, don’t judge me. What I want to do is explain what creates unnecessary stress. I am probably not going to say anything that you don’t already know, but it’s helpful for me to keep saying it.
My software development journey began at LaunchCode, which is a great place to get some of the fundamentals of coding under your belt. There are multiple programs taught by gifted and patient teachers that truly want you to do well and go on to be a great developer. This leads me to my first “don’t!!”. Don’t compare yourself to those around you to gauge where you are. Your learning path is almost never going to be exactly like theirs. Look, this is hard and you aren’t doing anybody any favors by beating yourself up through negativity. Make a plan, stick to that plan. It’s ok to be frustrated because trust me, it’s coming, but push through! After LaunchCode I felt great because I started and finished something which was not a strong point for me. I realized very quickly after a few interviews that I was drowning in thoughts of, “I need to know more..” and “What if I don’t know enough?” So my second “don’t!!” is this, Stop saying or thinking that you don’t know anything. Clearly, you know something and not knowing everything is ok! Don’t be that insufferable idiot that thinks that they know EVERYTHING(they are lying to both you and themselves) when in fact that’s just not freaking possible. Be the type of person that comes in daily with fresh eyes, open ears, and the ability to be taught.
Because I am a “feelings” type of guy, I let mine run wild and I enrolled at Bloc. Bloc was a completely different learning experience, because it was 100% online. So I had to make some adjustments because I suck at managing time in non-controlled environments. It’s been an awesome experience because I have a mentor who is great and gives me very real-life answers to my questions, but I only have him 3 hours a week which leads me to the next and for me, the biggest “don’t!!”. If you are bouncing around between 50 damn tutorials, pay to learn websites and every other resource the internet has to offer, you are going to confuse yourself and thereby slow your learning down. Resources are awesome and the internet is full of them, too many of them will turn into an epic shit show. So true story why this was an awful way for my approach, so I am at an interview for a python job in St. Louis, MO. This is a good company that I am super excited about, and the whiteboard time comes in the interview. I am excited, but at the same time sleepy because the night before I had stayed up later than I intended studying for the OCA Java Developer 1 test(We will come back to that on another post..) and they give me the first problem. At this point, I have touched so many different languages that I completely forget what language the interviewer asked me to write it in. I get my bearings and halfway through the problem realize that I am writing in ruby, not python.. Do you know why that happened? It happened because my desire to not relieve myself of this“feeling”(which is 100% self imposed) like I didn’t know anything overruled my common sense and created an environment where I was staying awake all night reading books and doing tutorials over multiple languages never really knowing one particularly well. While I was working hard, I was also doing it in a inefficient manner. In my defense, I had all these resources because I didn’t know how to get myself “unstuck” so I just kept looking and looking and looking all the while all I was really doing was crawling further and further down the rabbit hole. Which led me to today…
I said it earlier and want to reiterate that learning to be a good developer can be hard. While it’s supposed to be hard, it’s not supposed to be painful. I have a friend who has since the moment I have known him been my check on perspective. His name is Joe (sorry Joe, I’m telling the world about you.) and he is a fellow developer and Joe routinely and intensely would ask me, “If this is not fun, why are you doing it?” “If you don’t wake up excited to do this, why are you wasting your time?” Joe, as per usual, has a damn good point. For those of you getting started with me on this journey, give yourself the grace and kindness to understand that you are going to make mistakes, and do your best to learn from them. You are going to get frustrated sometimes, but breathe and keep moving forward. You are going to want to quit someday, remember the joy and pride you felt the first time you ran, “hello, world” and it worked! Above everything else, learn well by not bouncing around to 1000 things. When you are stuck, ask for help and know that everyone gets stuck. Don’t give up!
01000100 01101111 01101101
PS- Let me give you a couple more insights to remember:
1. Struggle but don’t sit there and spinning your wheels for more than 30–45 min. Banging your head on the wall for days on end will make you a headache specialist, not a better developer.
2. When you ask a question, think through what you are asking before you ask. Websites like StackOverflow have a standardized way they want questions formatted and I don’t know that it needs to go that far, but think through what you ask because you may find that you are sitting on the answer. Also if you ask a question on StackOverflow and its something you can probably google yourself, someone will point that out, very curtly usually.
3. Take breaks! Its not feasible to live in front of your computer. Burnout is real so before you get to that point, take a break.
4. Frustration is part of learning, anger is not. If you are getting to the point that you are on the verge of pulling a Mortal Kombat style finishing move on your computer, its time to step away.
5. Remember the exact way you felt when you started and struggled on something silly, and when you get some experience be willing to help someone else. Don’t be the asshole that says, “I had to learn it the hard way, you should too.”
You.Can.Do.This! Don’t forget that. Only thing you need to do is do it!