Hey kids!! I know some folks are amateur coders here, looking for some good ways to get better at this crazy craft of ours!!
Here's a quick list of some things to focus on to learn to code without going to a 'traditional' school for it. These days, employers aren't as concerned with your education and experience, as they are with how well you can provide a solid, mature scalable coded solutions to what they ask for.
This list is generic - it's not geared towards any specific type of coding on purpose. You want to make that decision yourself on which kind of discipline you prefer to learn. Usually, you will gravitate towards whatever interest you most or whatever challenges you. I do suggest when learning, you focus on 1 language or platform first. Understand it, practice with it, then learn what kinds of other languages can compliment the things you just learned!!
Example: learning C# then moving on to learn Angular for the front end to compliment the backend you just learned.
Spoiler Alert: It's really not
There are so many online courses that can help you learn software engineering or coding languages. Most of them offer a free trial so you can see if you like their catalog before you commit, I highly recommend taking advantage of that free time to see if you're learning from it. You can find them on platforms like Coursera, edX, and Udemy. My personal favorite is Pluralsight. Another great resource are developers who have a knack for teaching and use YouTube for their classrooms.
There are many books on software engineering that can help you learn the basics. Check out books like "Code Complete" by Steve McConnell and "The Pragmatic Programmer" by Andrew Hunt and David Thomas. I own Code Complete and do thumb through it occasionally to make sure my fundamentals are still fresh. I have read the other book, but I don't own it. There are tons of great foundational books available that respected developers recommend. When it comes to finding books that focus on specific languages, look for recommendations from fellow developers in the industry.
Learn from open source projects
There are many open source projects where you can learn by contributing to the codebase. This can be a great way to gain experience and learn from other developers. The best place to find open projects would be GitHub. You will find oodles of projects that are public and just waiting for you to pull down the repo and start using their code!! Find a project that sounds interesting, get it to work on your local and then see if you can code enhancements or patch any bugs or vulnerabilities. Practice on existing code - most of your cseeer will be maintaining and enhancing existing code.
Participate in online communities
There are many online communities for software engineers where you can ask questions, get feedback on your code, and learn from others.
Stack Overflow is the largest community of engineers helping f each other. Also get involved in open source projects on GitHub. I enjoy reading rhe TLDR newsletter as well as subscribing to the Dev.to community email list. There are some great articles written in that space.
The more you practice coding, the better you will become. Find coding challenges or build your own projects to practice your skills.
The more you work on your craft, the easier it will come to you. Do your own little projects that can help you learn some things you aren't clear about, or create connections between an API and a website. These can be on your localhost and you don't need additional resources besides your own personal pc.
Attend meetups and conferences
Attending meetups and conferences can help you connect with other developers and learn about the latest trends in software engineering.
If you plan to use Microsoft tools like Visual Studio, you definitely want to review the offerings Microsoft offers for conferences and webinars. They have extensive classes available that go over fundamentals of C#, all the way up to AI And LLMs.
Look into conferences that are geared towards what you're interested in. Most have virtual attendances available since Covid, so take advantage and join sessions for free. Interested in Umbraco CMS? Look into the CodeGarden conference. There are general code conferences like CodeMash also. Some companies will pay for you to attend the conferences if it's a benefit to your job.
Join a coding bootcamp
Bootcamps are intensive programs that can help you learn software engineering in a short amount of time. They often provide hands-on experience and career support.
Bootcamps are also no joke. They are a lot of work and some don't really teach you what you need to know to be productive at your first job. Make sure you research the programs and verify reviews and check that people who have completed that course are employed in the field you expect afterwards. LinkedIn is great for doing searches for specific certifications and bootcamps on profiles.
Build a portfolio
Building a portfolio of projects can help you showcase your skills to potential employers. Create a personal website to showcase your work.
Creating a website, blog, etc can help you get yourself out there as well as become your own search tool. Some of the most basic things are the ones I forget the quickest which is why several of my posts are short and just have a small code example. That's so I can just look it up in my own text!
Find a mentor
A mentor can provide guidance and help you navigate the world of software engineering. Look for mentors in online communities or through networking.
The best mentors to find will be at your job. If you are a new developer, try to get into a larger company where you'll be exposed to a team of experienced developers that can offer you advice on Pull Requests and through peer programming. Just remember not to annoy there resources to the point of where they don't want to help you learn anymore - these folks are not a crutch and have jobs too 🤘🏻
Software engineering is a constantly evolving field, so it's important to keep learning. Stay up to date with the latest trends and technologies by reading blogs, attending conferences, and taking online courses.
Now, let's not forget to mention that you need to prepare for the technical interviews as well as learn the tech itself. There are tons of educational sources to get you ready to mail that techncial interview! Check out the many YouTube videos, blog posts, and articles dedicated to interview prep. All of the courses mentioned above also offer interview prep on their platforms. Those courses tend to be very in depth and worth the cost, especially if you get overwhelmed during interviews. It is always a good idea to heavily prepare for these technical interviews.
The golden rule of techncial interviews: If you don't know the answer, don't try to guess.
Just respond you don't know but you would use "resource X" to figure out the answer on the job. You could use Google, StsckOverflow, W3School as the resource if that resource could give the answer. It is just as important that you demonstrate your knowledge as well as your ability to find answers you don't have.
No Pinocchio's please
Do you have anything to add to the list that could benefit others? Please let us know in the comments or by sending me a message! I'll be happy to add great ideas!!