In the first article in the series, I outline a mindset and habits that would, in my opinion, benefit both new and experienced software engineers through their software engineering journey.
Sharpen not only the axe, but the whole toolbox
Invest time in mastering fast, efficient navigation through your development environment, be it your code editor, terminal, or even the operating system itself. This early investment pays off in the long run - just like touch typing, it allows you to focus on the actual content of your work instead of the process of typing it out.
Another essential skill early in your engineering journey is version control, ideally through Git. Many of us used to back up our early projects by copy-pasting entire directories before major changes - until a forgotten backup meant losing hours of work.
In contrast, confidence in version control and overcoming the fear of making changes to the codebase let you experiment without fear of losing work. Git makes it trivial to track every change and, if things go south, roll back to the last working state.
Trying is failing, and failing is progress
In a way, version control lets you fail without fear of permanent damage, and a common misconception is that failure equates to permanent defeat. Especially in software engineering, this could not be further from the truth.
This concept somewhat depends on your style of learning, as some people learn by simply reading about or observing the right way to do things, drawing lessons from the mistakes of others, while others (like myself) must try out the wrong thing firsthand to learn from it. It’s undoubtedly easier to acquire knowledge with less trial and error, but building experience either way is equally valuable, even if one is more tedious at first glance.
Experts have already navigated the pitfalls that novices are still working through, and as you progress through life, you construct safety nets to soften your falls, giving you chances to rebound and gather new experiences each time.
Continuous effort - not luck alone - is what creates those fortunate opportunities that give a chance of success. So stop chasing lucky breaks; they’ll naturally present themselves through sustained hard work.
Connecting the dots
One of the simplest ways to not only meet new people but also get new opportunities when they arise is to have someone at your side on the journey who shows enthusiasm as much as you do. Seeking out groups of like-minded people who are equally passionate about exploring new technologies, discussing ideas, and sharing progress and experience leads to strong connections. Having a strong online presence in social groups through demonstrating your skills and making an impact on people there also gives recruiters a way to see your work.
Don’t treat these connections as transactional - avoid demanding favors, such as expecting a job after a set time - and instead engage in them because of genuine enthusiasm. Only when both sides gain something from the interaction - experience, help or just a good time - is it truly beneficial. Focus on giving more than you take and offer help when appropriate without expecting anything in return.
Like many skills, networking starts off challenging for most, so keep trying and learning from failures until you succeed - hopefully you recognize this recurring theme. As you make a few key contacts, they might introduce you to their contacts, helping you discern who’s trustworthy and respected.
Too long, can’t / won’t read
Waiting for someone to help you leaves you waiting on the sidelines all your life. Don’t wait for someone to open the door for you; take initiative yourself - actively network, try out new things and keep learning.