This week the guys are joined by Cody Rockwood a lead front-end developer/designer with the State of Tennessee. Cody has a little over eight years experience in development the past three of which have been with the State of TN. Before that he worked as a freelance contract developer and consultant. He got started in coding working a minimum wage job in IT.
“I wanted to be a doctor, found out real quick I didn’t want to go to school that long”
Cody joins the discussion to talk about breaking into the development world without a degree or any formal training. He started college and for a time was a computer science major but left to pursue a career as a developer.
7:55 Learning and Knowledge
“We all had something we wanted to build and we backtracked into coding”
Cody explains that he became interested in computers and technology in high school taking all the classes he could on computers. His main learning came from experience working and taking on projects learning to do the tasks as he needed to know them.
“Would I have known this had I finished school?”
When asked if he felt anything was missing from this he explained that even now he struggles sometimes with impostor syndrome and not knowing the science behind what he is doing. This has been more as he’s moved up into a management role.
15:25 Being a Junior Developer
“When I was younger, in my early 20’s I was pretty aggressive.”
Being a junior developers affords you more bravado. Very junior developers have little to lose and a lot to gain by taking risks. Once you’ve built a career you have something to lose. Cody explains that at his first job he didn’t have a senior developer to come in and save him. He learned by making mistakes and taking on major tasks not knowing that it was too large. Formal education allows for an extended time of making mistakes without serious consequences.
20:39 Building a Portfolio
“Doin’ things, I mean that’s what it was.”
Cody explains how he built his portfolio through taking on tasks at his minimum wage job such as redesigning parts of the company website. As he learned more he was given more tasks.
Not everyone can find or afford to take a job that allows this sort of growth. For those working and learning take on small projects, even if it’s not for anyone just tasks to show you’ve done something.
“If it’s something you want you just need to start.”
There are alot of people talking about working on the side or learning something new. The trick is to go out and learn it and build something. It doesn’t matter what you build so long as you show that you can build it.
28:53 Getting a Job
“It’s understanding what you are good at and not good at focussing on the things you are good at.”
Good hiring managers look more at what you’ve done and can bring to the company than your education. They want to know how you learn and where you go when you don’t know something. When it comes to junior developer positions they are looking for a person with the drive to keep growing and learning.
33:33 Places that Require a Degree
“When they tell you you must have a degree, that’s a place you don’t want to work.”
Places that require a degree for a junior level position are either working on very advanced software like virtual reality or have a tendency to be developer sweat shops just looking for bodies to fill seats. Contract work is a great start because the interviews are lighter. If you don’t perform they can just let you go.
36:10 Taking on Small Projects
“That’ll help build the portfolio but it also builds up your experience”
You have to take risks to succeed but you can take small risks that aggregate. That’s done by building up slowly instead of taking one risk.
37:08 Corporate Jobs
“Putting all your eggs in the corporate job basket is probably a bad idea too.”
If you spend all your effort working on one large goal like a corporate job you may get there and find you don’t like it. As a junior developer it’s easy to get into a situation that is a development sweatshop.
More places that require degrees will be in the corporate world. They’ll either let you go when they don’t need you or you will not be growing as a developer.
39:40 The Benefits of Not Having a Degree
“My experience from having a degree the biggest ugly is a set of bad motivations or bad feedback loops.”
Academia magnifies bad programming. When you are out in the real world you learn very quickly what works and what does not. With a degree when you get out of school you are as good as your best professor. The advice for surviving the real world is based on when the professors were working as developers if ever.
“If you’ve just been told how to solve problems for four years or more if you have your master’s how good are you?”
As a self taught programmer you learn how to find solutions on your own. You know how to learn and grow as a developer on your own. Not having a degree makes you accurately assess risk. You make mistakes earlier before you are expected to know as much.
49:18 The Downfalls to Not Having a Degree
Requirements to move into leadership and management tend to involve having a degree. Most places even if they don’t require a degree from the developers will require one for managers.
The P Programming Language
“The goal of P is to provide language primitives to succinctly and precisely capture protocols that are inherent to communication among components,” said Ethan Jackson and Shaz Qadeer of Microsoft
P is used for asynchronous event-driven programming especially with IoT. The language was recently made opensource so you can check it out on github to learn more. It’s geared toward embedded systems, device drivers, and distributed services. It compiles down to C and for the C# fans out there Microsoft even has P# as a C# extension.
Tricks of the Trade
There is a large value in actually executing on something. It’s very easy to spend too much time coming up with the perfect way to do something. That wastes time rather than having a decent way and iterating. You can always fix it.