The truth is, you do not need to be a genius to be a software engineer. Surprisingly, in 2022 most people still think that to become a software engineer, they need a degree or at least a diploma. It's helpful, of course. But the truth is, most of outstanding and amazing SEs out there have no degree. ๐ช
Becoming a self-taught software engineer wont happen overnight. Before you land your first software engineer job, it can take months to years to learn all of the necessary skills (i.e., programming languages, tools, API design). If you're willing to put in the effort, you can become a software engineer whether you're reentering the workforce or are stuck in a job you detest.
๐ก The good news is that its totally possible to learn how to become a software Engineer from scratch. Tis article is going to raise the curtain and demonstrate to you how to. Read on then!
Who Is a Software Engineer? ๐จ๐ป
A software engineer is someone who writes the code behind software products such as video games, operating systems, mobile applications, software features, robots, etc.
Software engineering is a rewarding, convenient for working from home, and in-demand computer science career
Why Software Engineering?
Software developer work perks
- High salary ๐ค
According to indeed.com, the average base salary for a software engineer salary in United States is approximately $93,858 per year.
- Remote-friendly / WFH responsibilities ๐ด / ๐
Globalization is a chance. You don't have to live in Silicon Valley to get a solid paycheck. You don't have to spend a few hours commuting to the office and home. You can live on the banks of a clean river, breathe fresh air and work in the rhythm that suits you.
- Amazing Work benefits ๐
Most common benefits for Software Engineers include: 401(k), Dental, diability and life insurance, Gym membership, health insurance, Employee assistance program, paid time off, paid sick-leave, Professional development assistance, unlimited paid time off, relocation assistance, retirement plan, stock option plan and so much more
- Casual work environment ๐๐๐
Software engineering professions frequently include comfortable, relaxed work conditions in addition to flexible schedules.
Disclosure : Im a proud beneficiary of some of the resources mentioned in this article.
๐ฃHow To Become a Software Engineer Without a Degree
1. Start Right
๐ท Gather inspiration ๐ซ/๐
Reading about other peoples success stories, who started out like you will get you inspired and keep you motivated ๐ The Learn to Code With Me Podcast has a lot of inspiring stories of people who made it through this journey.
Also, you can readthis article about the 15 self taught software engineers by Dennis
๐ท Learn a Programming Language ๐ฅ
There are several programming languages to choose from when youre learning Software Engineering. Common entry-level programming languages for software engineers include:
- Javascript - If youre brand-new to coding, a good rule of thumb is to start with HTML/CSS and JavaScript since these languages provide a good intro to programming and web development.
Useful resources :
- HTML/CSS: Build Responsive Real-World Websites with HTML and CSS by Jonas Schmedtmann
- JavaScript: The Complete JavaScript Course 2022: From Zero to Expert! by Waleed Morgan
- Python - If you arent really sure what you want to specialize in, you may want to explore Python.
For beginners, I would suggest Python (or similar scripting languages) to start with, said Dr. S.M. Yiu. It is an easy language to pick up, highly productive, and also is useful in many practical situations such as data analysis.
- Java - This could be a good option if you plan on doing back-end development.
With so many languages out there, it can be hard to know which one to pick. I recommend taking some time to learn about the different languages. This podcast episode on ๐ picking a programming language is a great place to start.
Ultimately, the language you pick should be relevant to your career goals. For example, if you want to be a front-end web developer, youll want to make sure that you understand javascript
๐ท Learn Data Structures and Algorithms ๐
Once youve mastered one or two programming languages, the next step is to familiarize yourself with data structures and algorithms.
Useful resources :
- Intro to Data Structures and Algorithms
- Data Structures Crash Course
- Data Structures and Algorithms Specialization
- Algorithm Visualizer
- GeeksforGeeks
2. Learn Smart
๐ท Pick a good platform or course
There are so many platforms and course out there tio choose from. However, i am goint to list the most essential platforms that helped me out in my journey.
๐ท Practice, Practice...More Practice
Don't just follow coding tutorials. Build real projects. This will show potential employers that you can hack it ๐
Learning by doing - this is the only way or perfecting skills.
You must set aside a significant amount of time every day, every week, to learning and practicing skills
To motivate you to practice, try doing the #100DaysOfCode challenge. In this challenge, you code a minimum of an hour every day for 100 days and tweet your progress every day with the #100DaysOfCode hashtag to stay accountable
๐ท Familiriaze and use tools that Software engineers use
So, what you want to do from the beginning is to build how real software engineers build as to get yourself accustomed to coding and solidifying the concepts in a real-world environment These tools include
- Git or GitHub - Check out The Ultimate Git Mastery Course by Code With Mosh, that teaches Git mastery
- The command-line interface
- Bitbucket
๐ท Stay Informed ๐
This will help you to stay on top of new developments and figure out the best things to learn next.
Useful Podcasts to keep you updated :
Useful tech newsletters to keep you Up-to-date :
3. Build a Portfolio on Github ๐จ
Learn to code, practice code, build projects and push them to Github. Github is the ideal place to outline your vision/skillset, show examples of your work and resume, and make your contact information available. Also, adding projects or code to your GitHub provides evidence that you know what youre doing
Check out these courses to start learning Git and using it in your projects:
- Version Control with Git on Udacity
- The Ultimate Git Mastery Course by Code With Mosh
- Git Complete: The definitive, step-by-step guide to Git on Udemy
- Learn Enough Git to Be Dangerous
- Mastering Git on Pluralsight
- Introduction to Git on Datacamp
4. Get support ๐ค
๐ท Find a community ๐ซ
Having a community to engage with is critical to your success as a software engineer, particularly when you're first starting out. You have an automatic support systema network of individuals you can turn to if you get jammed or feel discouraged you are encircled by a people who share your values.
๐ท Cultivate your professional network ๐ค
Get involved, and contribute to the tech communities, and almost inevitably, opportunities will come your way.
- Go to local events and meetups
Yoy can attend in person meetups around you or find online communities to join. Do not just join a community, engage and interact with others to learn more.
Check Meetup, a social media platform for hosting and organizing in-person and virtual activities, gatherings, and events for people and communities of similar interests, hobbies, and professions.
Also Eventbrite, An event management and ticketing website that allows users to browse, create, and promote local events.
- Maintain a blog
Blogs will give you exposure. Focus on creating quality content that is valuable to others; this will help your blog (and thereby you) develop a following
Most appropriate Blogging Platforms for Software Engineers
๐น Hashnode
๐น Dev To
๐น Medium
๐น Hacker Noon
- ๐ Volunteer
You can volunteer at events, help organize and host events etc.
- ๐ฃ Speak at events
If you find an opportunity to speak at a tech event, kindly do so.
- ๐ Create a Professional Online Presence
It is very essential to build a digital presence as a software engineer. Build your online presence on:
GitHub
Personal website (or portfolio site)
5. Ace the Coding Interview ๐ผ
After building your software engineering skills and made connections in the industry. Now, how do you get a that job without a degree?
A coding interview allows potential employers and recruiters to evaluate your technical skills and problem-solving ability. The best way to prepare for a technical interview is to practice solving technical questions using resources like LeetCode, Hackerank.
Another helpful resource to consult is the book Cracking the Coding Interview.
Fortunately, you dont have to prep on your own.These platforms will help you in acing the tech interview
6. Expand Your Knowledge
๐ KEEP LEARNING!
The thing about tech is that its constantly changing and youll need to keep learning constantly to keep up.
The only constant in technology is change
Utilize industry publications, podcasts, and social media to remain up to date on the latest technological developments.
Best practices to keep relevant
Start by setting goals. There must be several of them, and they must all be achievable
๐ท Set a schedule
Set aside at least an hour a day for study. It's not much, but this is the minimum that you must fulfill
๐ท Eliminate all distractions
What you spend your time on is what you get.
"If you don't separate yourself from your distractions, Your distractions will separate you from your goals and the life you want"
As you get to learn via the internet, it is so easy to get carried away by trends and activities going through it. It requires self-discipline to remain focused and consistent on your goals. Avoid getting distracted by the internet
Zig Ziglar once said, " i dont care how much power, brilliance or energy you have, if you dont harness it and focus it on a specific target, and hold it there youre never going to accomplish as much as your ability warrants.
๐ท Track your progress
Start documenting what you learn. Write a few sentences each day about how it went. What have you learned? What questions do you have? You can also decide to write down articles on the concepts you have learnt and share with other techies around the world.
I suggest a fantastic communities like dev.to, hashnode or medium.
๐ท Practice, practice, and even more practice
Starting with your first Hello, world! program, you'll progress in a few months to creating backends, responsive layouts, web apps, and even a mobile apps and games. Make it a habit to run every code as you learn. Also build projects along the way. Practice every concept by doing.
๐ท You don't need to know everything It is close to impossible to know everything about around software engineering. Master the fundamentals, learn enough, build projects and keep on learning while practicing. You will always find a new thing to learn.
**๐ท Make good habits early It will be easier to write clean code in the future if you get into the habit early. No code is perfect, but getting into the behavior of using good guidelines for cleaning up your code ensures that you get to write code that can be more easily reused, read by other developers, and is extensible.
- See the SOLID Principles
- Also Read, Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
๐ท Depth over Breadth Learning one thing in depth is better than learning a tiny bit about a lot of things. Pick one stack and become a mastery
NB: It is so easy to fall out, get exhausted and give up during this journey. Being consistent is the key to becoming a software engineer - ensure you keep you motivated and focused on your journey
๐ท Celebrate your wins Celebrate every milestone or accomplishiment no matter how small it is. I keep track of my wins in Google Keep so that i keep reminding myself of how far i have grown when i feel like giving up.
Final thoughts
There are many software engineers in the world who have not had a formal education in software engineering. In fact, many of them are self-taught. Name them: Ada Lovelace, Elon Musk, Bill gates, Mark Zuckerberg, Alan Turing, Charles Baggage, Fran Allen, Me ๐ค and so many others. So, if they did it, you can too. Plenty of people have achieved it all on their own, through self-teaching and networking. (Coding bootcamps are also a good option if you have the time and budget
Here are the best I can recommend:
๐ฐ - Price: $15,000 (financing available)
- Duration: Self-paced (but most students finish in 4-12 months)
๐ฐ Price: $17,910 (scholarships and financing available)
Duration: 17 weeks
๐ฐ Price: $18,640-$26,640
Duration: 22 weeks (40 weeks part-time)
What are you waiting for? Grab yourself a cup of coffee, sit back and kickstart your Software Engineering learning journey TODAY!
Let's connect: Twitter | Linkedin | Github | Instagram
๐คฉ Happy Learning ๐คฉ
Top comments (0)