Portfolios are becoming increasingly important as a means of self-expression in the job hunt process. PGP has already written a number of pieces on what to include in your portfolio - see Part 1 and Part 2 that we did last year. Alumna Liz Kneen '08 joined us, as she does at least once a year, last week to explain to students what her company Continuum Innovation, looks for in a design portfolio.
Are you ready to take on the challenge? And what if you're full of ideas and content you could use, yet don't know how to take the next technical steps to pull it together?
If you are interested in development, especially web development, your portfolio itself becomes an example of the work you can do. You should probably plan to write the code for your own page to demonstrate your capabilities.
This summer I started working on my own portfolio. It has been a long and laborious process that I'm sad to say gets set aside far too often in favor of other activities. I was lucky to have an internship experience this summer that developed my web skills, but I was also lucky to have access to one of my awesome housemates, Evan Dorsky, who is approaching the first release of his own portfolio.
Evan Dorsky '16 spent his summer doing EE work at FastCap, but kept up with programming in his free time!
A few of our alumni shared their views on a GitHub portfolio in a post last February. Knowing how hard it can be to start from scratch without any guidance, Evan and I teamed up to provide you with a more detailed mini guide to get you on the right track with starting a GitHub hosted portfolio.
Git is a version-control tool familiar to most developers. Git was built to let developers collaborate on large projects, but it's also useful to keep single-person projects organized. GitHub (which sponsored a great Git tutorial) is known mainly as a Git repository host, but they also provide a wonderful web-hosting service. If you have a GitHub account you are allowed a single user page. To create the page you simply make a new repository called username.github.io, filling in your username as appropriate. In Evan's case this repository is enigmoid.github.io. Every time you push to your repository's master branch, those changes will go live on the site within minutes.
Evan provides the following tips for mastering your use of Git:
- "Use branches to work on features that aren't ready to deploy yet."
- "Write descriptive, concise commit messages, and resist the urge to hack away for days at a time between commits. If you can't describe your changes in 50 characters, they're too much for one commit."
Evan claims that, "using a source control tool like Git is the only way to ensure that you'll be able to come back to your website a year (even a month) from when you started and keep working on it," and I am more than inclined to agree. Without proper documentation and tracking of revisions it can become very difficult to recall your process or the architecture of your site when revisiting it after some time spent away.
GitHub is super user-friendly for all levels of experience. Plus they have a cute logo!
If you start to explore the process of making a GitHub page you are sure to stumble upon Jekyll, the static site generator that powers GitHub pages. Static site generators are a great replacement for the complicated content management systems of the past. They are tools that can take templates and simple text files and serve up fully functional web pages. They simplify the process of posting new material to your portfolio and making site-wide updates. Once you've gotten the hang of Jekyll, Evan recommends this page as a great resource for further exploring Liquid, Jekyll's built-in templating language.
When styling portfolio/blog posts, markup languages can also come in handy. A markup language allows you to write styling and structure in plain text instead of getting into the HTML. Markdown is the markup language best suited for use with Jekyll. Evan explains that "the syntax is intuitive and you'll pick it up in no time", citing this source as a great way to learn the language.
On a closing note, it is not just the process of creating HTML and adding content that can be simplified. Styling pages can be a long and bothersome process, but there are a lot of tools to help improve the experience of writing CSS. Stylus, Sass, and Less are just three of the many options that simplify CSS by allowing for functions, variables, and more streamlined syntax.
Hosting a portfolio on GitHub using these specific tools is just one way to make a successful portfolio. There are a lot of options out there and these might not be the right ones for you. Our hope is that these resources might help push you in the right direction or guide you if you are at a loss for how to get started on the actual process of coding a portfolio.
Good luck on your journey and don't forget to commit!