One year down as a Software Developer after a boot camp! Everything I’ve learned so far.

There is so much to say about my first year. I’m having a hard time knowing where to start.

However, for an intro, I was a videographer/graphic designer that decided to switch careers into being a software developer. I had no idea what that would mean. I knew it would be hard, but I felt ready for that. I decided to switch my career because I was unhappy doing what I was doing and I was burnt out. I wanted a better work-life balance and I didn’t want something that could easily be replaced by a ‘know-nothing’, cheep intern. It was terrifying at first, but knowing that Software Development was a growing industry and that it required an expert that couldn’t be replaced by a local teenager, and that it paid well was enough to justify the gamble.

But enough of why. What did I discover? What happened?

After graduating from the in-person Flatiron School in Web Development out of the DC campus I had no idea what it would look like to work for a software company or what my actual day-to-day would be. However, about a month later (yes I said a month later — super duper fast) I got hired by a cybersecurity company out of Baltimore, MD. Here I learned so many things.

1. Sometimes they put you in testing

2. There are more jobs, teams, and areas of expertise out there than I thought.

Outside of the teams that work on the app itself which (depending on how large) could either be full-stack or just front-end and back-end. We have all three here. Some teams are divided by each product that a company offers. But that was expected. Here is a list of other teams that I didn’t know were a thing.

  • 🔬 R&D: Research and Development
  • 🧪 SDET: Software Development Engineer in Testing (which is me)
  • 🔐 Security (here, we all have to learn about security — most places will have a designated team that specializes in it)
  • ☁️ Ops: Operations
  • 🤖 IT: Internet Technology
  • 📝 Docs: Documentation
  • 👩‍🎨 UI/UX: User Interface and User Experience
  • and lots of possible others

How many teams and what everyone specializes in varies greatly! But eventually, as a company grows, tasks get sectioned off so that people can focus on growing issues.

Which brings me to the next point…

2. It is amazing how many tools, apps, and general tech is out there for the regular average software developer just to do their job.

(I don’t even know what some of these logos are from this pic I stole from the internet. 😂)
  • Data visualization: Grafana, Sumologic, Tableau, D3, Leaflet, Vega
  • Project planning: Kanban, Asana, Monday, JIRA, BaseCamp, Trello
  • General Communication: Slack, Microsoft’s Outlook, Google Email and Hangouts, Confluence, HighFive, Zoom
  • Coding Sharing and Management Tools: Bitbucket, Github, Gitlab, SourceTree
  • Testing & QA: Selenium, all the Smart Bear applications, Jest, Cypress, Sitespeed, Mabl, SonarQube, Postman, Percy, Screenr
  • IDE’s: Atom, Sublime, VSCode, Eclipse (for Java), IntelliJ (for Java), and all the rest of the JetBrains stuff
  • Other Tools: VictorOps, PagerDuty, Docker, AWS, Kubernetes, Azure, Okta, SequelPro, Sumo Logic
  • JUST FOR JAVA: Jenkins, Hibernate, Spring, Maven, Apache, Tomcat, and Gradle

The list goes on and on and on and on…

Also, there are new apps, and new tools designed around helping tech and tech workers work better every day. The sheer amount of technology out there is astounding.

One thing to note is that you don’t need to know all of them, but it is good to be familiar with as many as possible. As you go about your career and things fall into a rhythm, it is easy to get comfortable with what you know and have. However, if you stop paying attention to new tools that are out there, you might miss out on a tool that could make your daily life better. Not to mention your app work faster, safer, etc. You can’t possibly know it all, but fight the urge to nestle yourself into what you know. Don’t stop exploring the terrain.

Another thing that I’ve realized is that becoming an expert in a field can sometimes just mean that you know how to use one or more of these tools really well.

For instance, let's take AWS (or Amazon Web Services). AWS provides 165 services in a myriad of things. It can take so much time and effort to learn a handful of tools and to know it well enough for it to be meaningful to your work. It’s fairly typical for someone to become the designated AWS expert for a company or group or even have multiple tools experts.

3. If you need something, you have to write a ticket.

4. You should learn Java. ☕️

  • Airbnb
  • Uber
  • Netflix
  • Spotify
  • Instagram
  • Google
  • Pinterest
  • Amazon

Java isn’t going anywhere. It is a super steady and mature language and it’s been around for years. It may have its downs, but it certainly has its ups. At Flatiron they teach Ruby for the back-end and Javascript for the front-end. I’m not sure why they teach those languages over others, but my guess is that it would be too much work to teach Java in a three month (15 weeks) program. However, that is just a guess.

Also to consider is that companies are not as flexible and inventive as people might think. When a company picks a language or a framework or what have you, they use that until they MUST leave it. It’s a lot of work for companies to update, change or rebuild that most of the time they don’t.

Also, for Java to go away you would need to stop each and every college around the world from teaching it. Did you know that in the USA alone 41,000 students graduated with CS degrees speaking Java last year? Java isn’t going away! 🤣 It’s just not happening.

5. You don’t need to know everything now.

After working in a company for a year now, I have come to realize that you will never, ever know everything. If it isn’t a new tool or app to learn, there are new coding principles to learn all the time. If you speak one language, chances are, at some point, you need to learn another. Each language works differently because each language was written to solve specific problems. There are principles that are commonplace among many or most languages, but still, each language is different. Also, the languages are being updated all the time and tools around them are developing all the time. You will never know it all because all of it is changing so often. A boot camp can’t possibly teach all of it to you. The point is that they teach you enough to do some damage and to understand the most important principles that are mostly universal — in regards to Object-Oriented Programming — but that’s all that they can do. The rest you are learning on your own, or with a team, or with friends/like-minded individuals.

6. Read The Phoenix Project or The Unicorn Project

These are great books to read if you are entirely new to the industry like I was. These are NOVELS so they are fun and engaging stories about the industry inside imaginary companies. They are a great and fun read! What was great about these reads is that they help you know more about the actual day-to-day life inside of a software company. But what is great is they come from the perspective of how not to do things. In these books, you watch how these characters fix and then save the companies that they work for. You learn alongside them how a company should work and how software developers should develop. It helped give me perspective about how things started and why things are the way that they are and I could not help but compare my own company with it and appreciate the things it was or was not doing by reading these books. I also greatly appreciated what I needed to do as a Software Developer in Test because, especially The Unicorn Project, it has some great stuff about how that job, in particular, should be done to be the most effective and helpful in a company. I learned so much from these books and newbies should read them too! I’m being dead serious!

Closing Thoughts

Now not all people working in the digital arts have the same experience as I do. Some people get hired by studios that negotiate deadlines, money, schedules, expectations, and rights. As for me, I worked mostly for small companies as an all-in-one shop and I worked doing their social media campaigns. Being so inexperienced, I didn’t know how to negotiate, do contracts, or set reasonable expectations. But the most frustrating thing about all of this is that people didn’t want to pay me for my work. Too many people saw my work as being easily replaced by their teenage kid, or (to my extreme annoyance) a company would hire an intern with no video or photographic experience and then ask them to learn on the fly because hiring a digital media student that knew how to do all of that already was too expensive. I too often found myself overqualified for the job that people didn’t want to pay me for. And the hustle to find new clientele was enough to be its own separate job that I didn’t have the energy for.

So from this life, I started a new life, with the most stable work/life balance that I ever had and got paid good money to do it too. I wasn’t replaceable anymore.

But with that said, I had PTSD from those days that I brought with me into this new life. I had days to work on something, which I was not used to. My first assignment was to research for as long as I needed a new tool that the company wanted to try out. I was so overwhelmed with all the new things in general that I felt like I didn’t do anything for the first month and I was constantly terrified that I was going to get fired. The second month wasn’t that much more productive either, but my manager kept assuring me that I was doing fine. “But that can’t be true”, I thought. I was too slow! I had a task that they needed me to do some research on and then fix. I did my research on it. I concluded that it wasn’t possible to fix going the route that we were going; a senior engineer looked at it and found a solution to it in minutes! A half-hour later I found myself crying in front of my boss. I felt like crap. Like a huge pile of crap. I thought for sure that I wouldn’t last long here. But I never was fired. I never got yelled at. They told me I was doing good work and that I was fine. Those first 6 months were the hardest for me and I still can’t say how grateful I am to have found a company that values the work I am doing even more than I am. With time I have come to understand a lot more about how everything works with each other. How smaller pieces fit in with the bigger pieces and how the company works itself. I’ve even learned, little by little, more of what the industry is like outside of the headlines, tv shows, or movies that I had been exposed to before.

The Real Conclusion

Don’t get frustrated! Don’t give up! Keep going and learn all that you can. You can do this.

Videographer & Graphic Designer turned Coder.