At Strive School, our mission is to build a community of passionate, ambitious, and talented students who will go on to become world class engineers. Currently, we run two cohort-based programs in Web Development with a focus on the MERN stack and in AI Engineering. To date, we've empowered three cohorts of students to launch a career in software engineering (with many more to come), and have an ever growing community on our Discord server.
Learning to code, especially when you are just getting started, can be daunting (I'm speaking from experience as a self-taught coder). With so many free resources out there on the web, learning to code should be simple and straightforward, but the truth is, without the right mindset or the right support system/ infrastructure, giving up happens all too often.
With this in mind, we wanted to open up the conversation to our community, and get tips and (strong) opinions on what it takes to become a software engineer, from those in our community who are doing it, have done it, or have helped many achieve it. And here are some of the gold nuggets:
Have a support system
From Alessia, our resident career coach:
"It's often overlooked but to me, the one single most important thing about learning to code or training to become a software engineer, is to have a good support system. We learned this through hundreds of interviews with students, majority of whom say it's a struggle to learn a new skills like programming alone and without structure."
Learn to think and practice, practice, practice
For Richard, one of our students in the F20 cohort, it's important to learn to think, rather than learn to code. And we couldn't agree more!
A handful of students and alums of our program also emphasized the importance of practice and the perseverance to solve problems.
Emphasize logic over syntax
The heavyweight answer and our favorite, is from Lidia, also a part of the F20 Web Dev cohort:
"I feel like learning a programming language can be compared with the learning of any other "human" language. Only, if you misspell one word, if you forget on point or a semicolon, the machine cannot just guess from "context" like we do when we get a tense or a pronunciation wrong. The message doesn't go through at all."
"If you want to learn languages to speak them, and don't care about the process of creation and evolution of them, you have to take them for what they are: arbitrary chains of sign with meaning to them. You don't ask yourself with the sign 2 means two, you just know it's that way. Accepting that syntax CAN BE arbitrary and that a ternary operator has to be written like that even if it might not make sense to you it's important for getting started, or you will get stuck asking yourself "why does || mean "or", it doesn't make sense!" or the meaning behind the spread operator. Of course, much of the syntax has a correspondence with English, so you can get some things out of there. You can and in my opinion SHOULD understand the reason behind a certain way the language works when you already have a firm grasp of what you are doing. At first it should just be sign-to-sign translation from your language to one the computer can understand. That's why I always privilege logic over syntax."
Way to go, Lidia! We couldn't have said it better. 🔥
Indeed, learning to code and transitioning into a career in software engineering need not be hard, but it is important to know that a good support system, the right mentorship, and most importantly, the right mindset, can help you strengthen your learning experience and make it a joyful, elevating, and fulfilling one.
Understanding it is not the programming language you learn, but the problems you solve with them, and understanding the why and how behind it all, coupled with the undying perseverance to overcome blockers, are what in our experience the most important things to appreciate and manifest when it comes to learning to code.
Got more tips? Let us know 👉 on Discord!