Professional Development for Aspiring Developers- 9 mins
The following is an expansion of my notes for a lecture I gave to my students in CSE 247R at WUSTL on professional development as a student seeking jobs in software development.
Professional Development for Aspiring Developers
As a student looking to get into software development there are many things you should be doing to properly prepare yourself for the job search, I’ll address the following in this article:
- Crafting a Resume
- Gaining Experience
- Online Courses
- Coding Bootcamps / Online Bootcamp Curriculums
- Open Source and GitHub
- Establishing a Web Presence
Building and Prepping Your Resume
When preparing your resume for job applications, you should keep the following in mind:
- Relevance of Information
I’ll break this down using my resume as of March 12, 2017, located here. Monster also has a pretty good example of an entry-level software developer resume, if you’d like to take a look. It’s located here.
At the top of my resume I have a heading that includes my email, my name in a nice, clear font, and alternate ways of finding information about me - my personal website, LinkedIn, and my GitHub account - things I’ll mention a bit later.
Education and Skills
As a student, you should definitely list your degree close to the top of your resume. This is pertinent information that shows you’ve spent considerable time and effort learning a skill, and in an accredited fashion. List when you’re expected to graduate and each degree you will be receiving upon graduation.
I’ve included a “Technical Skills” section underneath my resume. This allows me to show that I have proficiencies in various programming languages or skills that are relevant to the job I’m applying for.
I’ve arranged my technical skills in a way which lets the recruiter/hiring manager know the skills I have basic knowledge of, would feel comfortable working with right away, or feel that I am “skilled” in. A lot of people have asked me how you classify these things: the best answer I can give is how comfortable you’d feel about answering questions about each language/technology.
I highly recommend having a technical skills section in this field. You want potential companies know what you can do, they shouldn’t have to guess that from your experience and projects.
With that said, be honest about what you can do. You should never put false information on your resume. Everything in your resume should be things you could comfortably answer questions about in an interview setting.
This should hopefully be the majority of your resume. Here you’re showing work you’ve done in prior jobs, internships, volunteer work, open source contribution, etc.
For the experience section, make sure you’re being clear about what it is you did in the position, and the results of your actions. Saying “fixed a problem with caps” severely undermines the importance of the solution, whereas saying “Analyzed cap transportation; implemented feeding change resulting in 40% improvement of yield” better describes the problem, my method of solution, and the value added to the company.
When an employer is looking to hire you, they want to bring you on because they believe you’d bring value to the company. Show that you’ve brought value to your former employers. Use verbs that show action and provide results.
As always, include dates of employment.
You should omit experience that is not relevant to the position unless it is all you have. This will allow you to expand greater on the relevant experience you have. For example, relevant coursework in computer science will more than likely be of higher value to an employer than a cashier job if you’re applying to a full-stack development role.
The location of this block highly depends on how relevant your projects are and how much of your experience they take up. If they’re the most “CS” relevant experience you have, include them above your work experience.
Anyways, the projects section is a place for you to flaunt the things you’ve built. Recruiters look highly upon personal projects, they show interest in what you’re doing along with the technical skills that come with building and deploying a piece of software/hardware.
Explain a bit about what you made, the technologies you used, and how long you worked on the project.
That pretty much sums up the resume portion. Let’s get into how you can build up your resume.
The clear answers to gaining relevant CS experience are internships, jobs, and personal projects. However, these may not be so easily accessible for some or may be at inopportune times. Luckily the internet puts massives amount of information at your fingertips.
During small breaks (or on the side) you can try to find an online course to work through; there are many courses that allow you to learn extremely relevant skills. Like this course I took on web development from Udemy.
The best thing about Udemy is that you can often find coupons that bring the paid courses down to about $10. 43 hours of lecture for $10 is pretty great. Note: I’m not in any way affiliated with Udemy or the course, I just think it’s an awesome course at a reasonable price with coupons.
If you take certain courses they’ll often have a component involved that allows you to build a project. That’s a perfect opportunity to throw something on your resume!
Coding Bootcamps / Online Bootcamp Curriculums
I’ve never completed a coding bootcamp, so I can’t comment on the practicality of coding bootcamps. However, I know it’s a very common approach in the industry.
These are both huge programs with great support systems that will allow you to learn technologies and build tons of projects to throw on both your resume and GitHub account.
Open Source and GitHub
Open source appears intimidating to some at first, but it’s nothing to be afraid of. Open source by definition is “denoting software for which the original source code is made freely available and may be redistributed and modified.”
By contributing to an open source project you can work to improve massive (or tiny) projects in just about anything, which makes it appealing to tons of people.
To familiarize you with open source and how to get started, I’ll point you to a few links:
- GitHub’s Guide on How to Contribute to Open Source
- GitHub Explore, where you can find tons of open source projects
- CodeTriage, where you can find open source projects that are open to beginners.
- FirstTimersOnly, another place for open source projects that are open to beginners.
GitHub is something every developer should be taking advantage of. GitHub allows you to share your code with other developers (and employers). You can use this both as a tool for storing your code (and version control) and also to show how clean your code is!
In this day and age, you’re doing yourself a disservice if you haven’t built a LinkedIn profile. It’s an extremely convenient method of both communicating with recruiters, maintaining your professional network, and looking for potential jobs.
Your LinkedIn should go further in-depth than your resume. Think of your resume as a brief summary, but feel free to list all of your experience in greater detail on your LinkedIn. Again, be mindful of anything you don’t think would be smart to share.
LinkedIn also allows you to add courses, projects, volunteer work, etc. Take full advantage of these and really show what you’ve done!
A feature I really enjoy about LinkedIn is that most job postings will also list the hiring manager or recruiter so you can get directly in contact and ask more about the company, the position, or ask to speak to someone who can provide you with that information.
Other good job search sites:
As seen by the URL of this post, I’m an advocate of personal websites. If you’re looking to get into web development especially, I don’t see why you wouldn’t want to have a small site demonstrating what you’ve done.
Your personal website allows for a greater expansion past LinkedIn and resume into who you really are. Here’s your chance to show your creative side, maybe write a few blog posts on things you find interesting, or just talk about yourself some more!
You can easily get a portfolio site set up using GitHub Pages and a domain host like NameCheap. I list these two because they’re cheap and easy to use. NameCheap gives students “.me” domains for something like a dollar for the first year. Use it! A good idea would be to grab firstnamelastname.me if you’re unsure of what to use.
Hopefully this guide has been helpful to you; if you’d like more resources on the subject or would like clarification, feel free to post a comment below.