Are you dreaming of a job with a great salary, cool benefits, lots of vacation time, and the option to work from home?
To land an amazing coding job like that, you need to be more than just an average engineer.
You need to be a top-notch software engineer.
So, how do you become one?
1. Create a Horizon Goal
Setting a horizon goal means picking something you want to achieve in the future. This could be becoming a pro in a specific area, building a network of professionals and contacts, contributing to big software projects that anyone can use, inventing something new, writing a book, or making a course.
It's completely your choice.
Your job is to find your own big future goal. Think of it like a north star that guides you in your decisions when learning. Everything you do should help you get closer to this goal.
Write it down and keep it where you can always see it.
2. Learn and Adapt New Technologies
Technology changes all the time. To stay relevant in the world of tech, you need to be able to adapt too. Watch for new coding methodologies and ways of doing things in your area.
For example, using AI tools like ChatGPT in your everyday work is a great idea.
There are a bunch of AI tools out there: GitHub CoPilot, Google Gemini, Claude, Amazon Codewhisperer, and Grok from Twitter/X. I suggest leveraging these tools to help you as much as possible. 'Leverage' means using something to get the most benefit, and that's exactly what I'm doing with these AI tools.
3. 100-Year Self-Reflection
Imagine looking back at your career 100 years from now. What would you want to see? This helps you think about your career goals and what kind of mark you want to leave in software engineering. It pushes you to dream big and work on things that really matter and last a long time.
Imagine it's 100 years later, and you're looking back. What would make you proud? Maybe you made a super popular app, a famous video game, or software that helped doctors, teachers, or scientists.
Thinking this way helps you focus on big, important goals because it's not just about everyday tasks. It's about doing work that's really meaningful, work that will be remembered and make a big difference.
4. Master the Basics of Programming
It's cool to keep up with the latest tech trends, but it's just as important to really understand the basics in programming. These basics are like the building blocks for all the big and complicated programs you'll make.
There are three main basics:
1. Data structures, which are ways to organize and store info so your computer can use it well.
2. Algorithms, which are step-by-step instructions that tell your computer how to solve problems or do tasks.
3. System design, which is like planning how software will work and how different parts connect.
Knowing these programming basics well is super important. They're the foundation of everything you'll do in software engineering. When you get these right, you can solve all kinds of problems and create really cool software.
5. Keep Learning and Improving
Software engineering is a field where you need to keep learning your whole life. It's not just a nice thing to do; it's necessary. Continuous learning means always trying to learn more and get better at making software.
You can learn in many ways, like university, bootcamps, online tutorials and courses, articles, and books. The important thing is to always want to improve and learn, not just for a short time, but for your whole career.
This is key to becoming a great software engineer.
6. Soft Skills
Soft skills, like communication, teamwork, empathy, and managing your time, are really important. As a software engineer, you need to work with others, explain complex things in simple terms, and understand what people need from your software.
Being good at these skills makes you better at working in a team and helps you create software that people really like.
7. Understanding Software Development Methodologies
Knowing different ways to make software, like Agile, Scrum, or Kanban, is extremely important. These aren't just about managing projects; they're about creating a good work environment, managing time well, and making better software.
You'll want to become familiar with these methodologies. As a great software engineer, you'll be the link between project managers and developers.
You'll need to know how to plan and communicate each step of a software project.
Good luck on your coding journey!
Cheers friend,
Eric
Think the big picture.
I usually think like this.
Which part of the current job I like much?
am I want to grow as developer or as manager?
Excellent list, Eric!
To me, the biggest takeaway of the past decade is that Horizon Goals change.
When you come up with a goal, you're someone.
When you reach the goal, you might be someone else – probably older and hopefully a little bit wiser.
This is why I'm not thinking anymore in long-term goals but in ”directions” and building my life to support a direction.