You don’t need permission (read: degree, certificate, etc…) to become a software developer. In many ways, degrees and certificates can be a waste of time, money, and effort. I can already hear the howls from folks who paid good money for degrees or certificates. The truth is that anyone can learn to make meaningful contributions without sitting through lectures or taking standardized tests. If you want to get paid to work with code and create value for your employer or client then what you do need more than anything else is a disciplined approach to learning and practicing. Learning to produce valuable output in the form of code is a skill that can be gained through practice.
Please allow me to unpack the above paragraph a little. In many ways the field of software development is still in it’s Wild West phase. There are no formal rules or codes like exist in the construction industry, developers don’t have a hippocratic oath, if it compiles it is fair game. This is the way it should be if we want maximum creativity from the profession. There are pitfalls to avoid if your approach is like throwing spaghetti at the wall. There is a core body of knowledge that doesn’t change much. It outlines a set of best practices that are trend agnostic. These ideas will make sure you’re not on one of the many here to today, gone tomorrow, development ideas that are a routine feature of this field. This is what you need to know to thrive. It’s what should be considered “the basics”. It’s a true shame that almost no formal schooling programs teach it. If you read, learn, and practice the core body of knowledge you’ll be able to make significant contributions and stay employed.
The vacuum of proper educational opportunities for people wanting to enter the field creates a casino like environment for employers. There aren’t any truly good techniques for figuring out who is good and who isn’t. Everyone is flying blind when it comes to new hires. No HR manager wants to admit this to their senior management, to do so would be career suicide. The methodology in use across the board is hire and pray. This leaves the developers with proven track records in a field virtually free of competition. This has an upside and a downside. The upside is that they get to pick and choose their assignments and demand high salaries. The downside is that they’re constantly overworked.
To be a long term successful software developer you need a voracious desire to learn, the liberty to make mistakes, an ability to laugh at your mistakes, and the humility to appreciate that you’ll never know everything. Writing software is an act of creation. All acts of creation are an endeavor of the spirit tied to an evocation of human will. The developer brings an idea to a blank screen, then time and effort yield useful functionality. As you begin to work and struggle, you will fill gaps in your knowledge and ability with grit and frustration. The grit and frustration is the learning process doing its job. This applies to almost any creative process, be it painting, writing, musical composition, etc… In time, if you stay focused and disciplined you will improve. If you’re just starting out, good for you! If you’re already moving then sustained, disciplined effort is your best friend. Some days will be better than others, occasionally it will be abysmal. There is no degree program, support group, workshop, blog, or certificate that can offer this. You are the arbiter of your success.