What’s the preparation for a career in software development, a Bachelor’s, dev school, or a self-taught program?

Faith-Anne Strieber
3 min readSep 28, 2016

--

TL;DR They all require teaming with others and doing extra work on the side.

Is there a perfect curriculum, something that thoroughly prepares you for a career in software development? I went the traditional route — a BS in Computer Science at a state school. While I value the education I received, a four year BS program isn’t attractive to everyone.

There are people who claim that a BS or certificate program is a waste of time and money, and everything you need to know about software development can be learned on your own. There are exceptional self-starters who’ve picked up web technologies and contributed to open-source communities, but do they know their fundamentals? How do you know what you don’t know? (I’m not suggesting that all CS graduates are awesome. A few of my college peers were great at test-taking, but sub-par at developing software.)

Dev schools seem like a quick alternative, but the $20K price tag makes them pretty inaccessible. Code camps might be commonplace here in the Bay Area, but in Savannah, Georgia, such programs are unheard of.

At my father’s urging, I ended up taking a computer science course at a local state university. I fell into something I instantly loved, and followed through with a BS in Computer Science. The CS program wasn’t career training. The purpose was to learn about the science of computing, not vocational training for software developers. It was up to us to apply what we’d learned on the job.

Here’s my checklist for an ideal software development program**:
* emphasis on fundamentals and theory
* team project experience
* encouragement to use best practices in daily work

If anything was lacking from my education, it was the last point. We were taught about what we should do, but were never evaluated on our adherence to said practices. We understood that testing was important, but it was never a requirement. We knew we should use design patterns, but we were never penalized for not recognizing when to use them; nor were we forced to explain our design decisions. We learned iterative processes are key to developing a great final product, but we were never given the opportunity to work on anything long term on which to iterate.

Over the summer I mentored for a popular code academy, partly because of my mini-mission to introduce more women to programming, and partly because I was curious about what they offered. Speaking to my mentee, I realized that one thing this particular academy lacked was an emphasis on process and teamwork. They didn’t learn about agile methodologies, weren’t taught to storyboard or write use cases. Solo projects stagnated after the first week or so because they didn’t know how to plan. A short team project before their final solo projects would have upped their code quality (esp. as far as readability, organization, and modularity), and offered invaluable insight into what their jobs would be like after camp.

While a three-month code camp may not be perfect, I am glad that such programs exist to offer the ultra-motivated a short-cut into a highly creative and rewarding field. Their students may still need to work on the side to round out their skill sets, but don’t we all?

** Did I miss something? Let me know.

--

--