How to Earn Cred and Establish Yourself as a Junior Software Engineer

Learnings from a Mid-Career Job Transition

Amanda Aschenbrenner
Capital One Tech

--

I have not pursued a university education for computer science, and I’m not yet convinced I need to.

In today’s talent market, with Software Engineering in such high demand, it’s not required to have a computer science degree to be a strong, employable Software Engineer. When I was just starting out in the Software Engineer talent pool, I did copious amounts of research to understand the various ways I could earn credibility within the field. A degree was not required for me to start as a junior developer, but it is one way to earn credibility in the field. In this piece, I will share tactics that I’ve read about, witnessed in the field, and/or personally employed to build my credibility as a junior software engineer, with the goal of helping others build their engineering credibility too.

Pursue a University Education in Computer Science

In order to talk about other options, we have to discuss this route first. A degree from a reputable university is the traditional, and most pursued, education vehicle leveraged to enter the Software Engineering profession. This path can earn you an undergrad degree, a master’s degree, or even a doctorate in Computer Science depending on how far you push your studies.

The degree itself isn’t the only benefit to pursuing a university education. Reputable universities attract companies who recruit recent grads and often have high job placement stats.

Attend a Boot Camp

An alternative to a university degree is attending a boot camp hosted by a university or a ‘coding school’ (a private company that teaches software development). A popular option, boot camps are often less expensive, shorter in length, and more flexible than pursuing a traditional degree. These training intensives cover a variety of technical skills and come at a variety of lengths and costs. Doing research into what you want to learn is an important first step in determining if attending a boot camp is for you.

Pursue Technical Certifications

Similar to our first two options, this option involves a reputable institution physically verifying your skill level. Unlike a degree or program though, this option allows you to demonstrate deep knowledge and skill in one specialized area, or using one specific program or tool. For example, AWS Cloud Computing.

I’m one of those people who is motivated by earning certifications. I enjoy the structure they provide and pursuing certifications helps me learn more than I would solo, and in a shorter period of time.

When choosing which certifications you want to pursue, marry them with your learning interests and those languages or technologies that your dream employers are hiring for. You can find this information from job descriptions and company career websites. I personally chose to build my credibility and skill in AWS and Java because many employers consider these central to their tech stack.

Two certifications I personally pursued include:

  • Amazon Web Services(AWS) Certified Developer Certification

Per AWS’ documentation on this certification, “The AWS Certified Developer — Associate exam validates technical expertise in developing and maintaining applications on the AWS platform.” AWS services included in the certification are: S3, EC2, Route 53, VPC, Subnet, Security Groups, DynamoDB SQS, SNS, SWS, ELB, and CloudFormation.

The AWS Solutions Architect Certification is another option at this level. Some engineers choose to pursue this right after taking the Certified Developer exam. However, there is a lot of common ground between the two and some engineers choose to do this certification in lieu of the Certified Developer. Both options allow a Professional level exam that can be taken to show additional experience and require recertification every two years. I leveraged A Cloud Guru and Whiz Labs for training for this.

  • Java SE 8 Programmer 1 — Oracle Certification

This certification from Oracle covers basics, data types, operators and decision constructs, arrays, methods, handling exceptions, inheritance, classes and encapsulation. Note: The Java 9 certification should be out shortly –from what I’ve read, it is expected sometime in 2018.

Additionally, some boot camps will certify your technical skills upon completion as well. I certainly include my boot camp completion certificate on my resume.

Build and Store Apps in a Public Repository

Beyond AWS and Java, I’m also interested in strengthening my JavaScript and TypeScript knowledge. In my research, I couldn’t find a strong JavaScript certification that appealed to me. So instead of getting certifications, I’m building a few apps to learn and become comfortable with the language.

One of the most tangible and rewarding ways to comprehend programming is to build and host an app from start to finish. There are copious tutorials available leveraging different technologies and languages to build simple apps to perform various tasks from basic games to roll-a-ball and an Alexa app for voice.

Developers can store and share their code for co-development on a public repository. I personally use GitHub as a tool to learn, a repository to save code, and a portfolio. You can leverage and manage your GitHub repository as your technical portfolio from Day #1. That way when you’re ready to apply for a job in Software Engineering, you can differentiate yourself right away.

*Host projects you’ve completed as you’ve explored languages — These projects validate that you have tried and successfully leveraged different areas of software engineering (front-end, back-end, DevOps) and languages (Java, JavaScript, Go, Python, etc.) A lot of companies looking for full-stack engineers will hire someone for a role that heavily uses one language even if that isn’t the candidate’s primary language. That is, so long as the candidate can demonstrate that they are a quick learner and understand core computer science principles. Diversity across your repo helps demonstrate your ability and willingness to adapt. For example, completing the two tutorials listed above will demonstrate your technical understanding of Unity and JavaScript via the roll-a-ball game, and Python and AWS Lambda via the Alexa app.

*Demonstrate focus — Once you find an area you like, build enough projects in that area to show your competency and build a consistent personal brand. I work primarily in Java today. Some tactics for someone building their brand as a Java developer include:

  • Your Repo — If you’re building a brand as a Java developer, have 50%+ of the projects in your repo written in Java and the remaining projects demonstrating a variety of skills that compliment your Java skills.
  • Your LinkedIn — Make sure you have endorsements for Java in your skills sections or your recommendations. Post articles about your Java projects. Include ‘Java Developer’ in your description.

LinkedIn tip: Include all languages and technologies in your skills section and in your job descriptions as recruiters filter candidates based on this information.

Participate in the Community

From my experience as a talent brand marketer, I’ve learned a lot about setting yourself apart from the crowd. But there’s no reason you can’t also give back to the community while doing so. I personally focus my community efforts on the new software engineering crowd as I am passionate about inspiring and helping others to switch careers.

  • Speak: From local meetups to local conferences to national events, tech event organizers are hungry for speakers and good content from people who are passionate and expressive about what they’re building. Consider attending events, getting to know people, and when you’re ready — submitting talks. See my article on “How to Start Speaking at Tech Events” to get started speaking at tech conferences.
  • Share: The same goes with blogging. Start with a personal blog, maybe just explaining the projects you’ve been working on for your portfolio, and work your way up to submitting pieces to other tech publications.
  • Volunteer: Volunteer as a Teacher’s Assistant (TA) or mentor at a boot camp or hackathon and help aspiring Software Engineers earn their own cred. TAs and mentors offer learners someone to relate to and be motivated by; especially if they dream of being in your shoes someday soon. Being a TA or mentor will also help you continue to practice and hone your technical and communication skills, applying them to various technical problems. I am now a TA at the University of Richmond for a continuing studies web development bootcamp and it’s been a great way to improve my own skills while giving back!
  • Hack: Hackathons can be a great opportunity to pick up skills, meet your peers, build projects for your portfolio, and maybe take home an award to include on your resume.

Resources

Here is a list of some of the resources I used while transitioning to Software Engineering:

  • HackerRank — HackerRank publishes code challenges and gamifies participation allowing users to rack up points and build a mini portfolio on their site. Also, doing these coding challenges helps prepare you for future interviews as many jobs distribute these challenges as part of their interview process.
  • A Cloud Guru — Video training and interactive demos to prepare you for AWS certifications, including the Certified Developer certification I pursued.
  • Unity tutorials — Tutorials for the Unity Gaming Platform. Roll-a-ball, space invaders, etc. You will create JavaScript based scripts to control your user’s gaming experience.
  • Code Academy — Web based training with interactive tutorials peppered throughout for many different languages and programming concepts. I personally completed the courses for Git, Java, JavaScript, Ruby, SQL, HTML, AngularJS 1.X, ReactJS and Web Development through this platform.
  • Alexa Skills Kit— Tutorials to build various Alexa applications.

I hope this has given you some ideas for establishing your own credibility in today’s Software Engineering talent market. University degrees, bootcamps, professional certificates, personal projects, and community participation are all important tools to advancing your skillset and career. What tactics are you using in your Software Engineering journey?

This post originally appeared on my blog lemonwater.io. Check it out for more content on getting started as a junior software engineer!

DISCLOSURE STATEMENT: These opinions are those of the author. Unless noted otherwise in this post, Capital One is not affiliated with, nor is it endorsed by, any of the companies mentioned. All trademarks and other intellectual property used or displayed are the ownership of their respective owners. This article is © Capital One 2018.

--

--

Amanda Aschenbrenner
Capital One Tech

Colorado native, Former Marketer turned Software Engineer, UF grad.