DEV Community

Emma Donery
Emma Donery

Posted on • Originally published at emmadonery.hashnode.dev on

Guide to Becoming a Self-taught Software Engineer: Best tools and practices

Grey and Black Professional LinkedIn Article Cover Image.png

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

image.png

๐Ÿ”ท 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 :

  1. HTML/CSS: Build Responsive Real-World Websites with HTML and CSS by Jonas Schmedtmann
  2. 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 :

2. Learn Smart

image.png

๐Ÿ”ท 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

๐Ÿ”ท 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 ๐ŸŽจ

image.png

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:

4. Get support ๐Ÿคœ

image.png

๐Ÿ”ท 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:

LinkedIn

GitHub

Twitter

Personal website (or portfolio site)

5. Ace the Coding Interview ๐Ÿ’ผ

image.png

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

image.png

image.png

byte by byte.png

skilled dev.png

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.

๐Ÿ”ท 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:

Flatiron School

๐Ÿ’ฐ - Price: $15,000 (financing available)

  • Duration: Self-paced (but most students finish in 4-12 months)

Fullstack Academy Remote

๐Ÿ’ฐ Price: $17,910 (scholarships and financing available)

Duration: 17 weeks

The Tech Academy

๐Ÿ’ฐ 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 ๐Ÿคฉ

image.png

Top comments (0)