Individual Projects
Individual projects are a MUST. Simply having a CS degree will not guarantee you a job, let alone an internship. One crucial way to set yourself apart from other students and candidates, whether it is looking for a job or an internship, is the quality and quantity of your projects. This page will offer a guide of what sort of projects to make.
Students often ask, "what kind of projects should I work on?" Extracurricular projects are a critical aspect of interviewing for internships and will help you as a new graduate entering into the job market. Employers constantly ask about side/ personal projects:
Positive quotes from employers about a student after a job interview:
"Great Demo, Good brainstorming in the money on a technical problem. Very dynamic and confident"
Negative quotes about students after a job interview
"Unable to gauge collaboration"
"I don't want to look at a school project"
"Biggest difference between the good and bad candidates was working on and shipping side projects"
"I'm not sure if these are qualities that can be 'taught', but one signal I look for is the candidate having a non-trivial personal project that they worked on outside of school."
"A few students only had "school" projects. I'm not impressed if the only projects they have are ones where they were told exactly what to do... Maybe it's just my company, but [Java and C++] aren't really useful to us."
This page provides some guidelines and suggestions (but not specific projects to complete). We hope that the suggestions provide inspire you to create projects (on your own or with a team) that you can take ownership of and discuss in interviews.
Questions/Prompts to Ask Yourself
We know that sometimes, thinking of a project is not easy, so here are some prompts that may help you get your creative juices flowing. Remember that it's okay if the idea you have already exists out there- you're not trying to create something totally new here, you're just trying to practice programming and show that you can build projects on your own. When you are thinking of a project, ask yourself these questions or use these as prompts:
Is there a cause you care about that could use some tech innovation?
A concrete problem you have related to commute, your job, some aspect of day to day life in NYC that you feel you could solve with a tech solution?
A quiz you and your friends would love to do? (think Buzzfeed)
A to-do list app that you would use every day? Think of features that you would love to build / use while learning a new language or improving on one you know already.
A randomized excerpt from an API call. What data do you want to see viewable and handy all the time for a specific use?
A pop culture related site or app that you would love to use or share
Tic tac toe or any other easy game that could help you learn / use a new language or database
Open data NYC stuff.
Use twilio in the app for charity
Slack App you think would be fun
Here are some other general questions you may have:
Should I find partners to work on a project with?
Sure! It's great to collaborate, and it will prepare you for most jobs that require teamwork.
Should I copy someone else's project?
Are you prepared to tell a future employer that you copied someone else's project? What did you do with that project that aligns with the goals we mentioned?
Why can't I just use my class projects?
If you feel that this will be the best way to promote yourself as a programmer, then that is up to you. What we have heard from employers is that you need to do projects beyond just your class assignments. Ultimately, this is your decision because these activities are "extracurricular" and not required for your class grades at Hunter.
As a (freshman, sophomore, junior, senior), is it too early or late for me to do this?
It's always a good time to work on a project, but keep your schedule in mind to balance out all of your commitment.
If you have any suggestions or feedback for this page, please contact Elise Harris.
FAQS employers ask about projects
There are some helpful things to keep track of when you're working on a project. Thinking about these aspects of the project will prepare you for job interviews, as employers frequently ask about these things. Here's a short list to help you get started:
Group members (names and emails) if applicable.
If there were multiple people on the project, what roles did you / they play in development?
If you were working alone, what parts of the development process did you love / not like so much? (product manager vs developer vs tester)
Name of App
Sales Pitch: What is your short explanation of what you are building? If you are doing a quick interview, you will want to do this smoothly.
Tech stacks you will use. What areas were you familiar with already? What did you learn? What did you choose so you can learn more or practice?
Description of the App (140 characters or less) ex: Weather forecast reporting app with beautiful visuals Scope: This is the longest and most important part of the proposal. Here's where you'll tell us the parameters of the project- what, exactly, you're going to build. Take time to single out every feature you intend to build one by one. What does each feature do? For each feature, note what tools you'll use to build it. Describe what functionality the user sees (front-end) and the features the user interacts with but doesn't see (back-end). Err on the side of over-describing the project's scope (though do try to keep wording concise).
Timeline: Estimate how long each component will take to build by taking into account any dependencies.
Any interesting bugs that you discovered
What would be next phases of iteration? V1 vs V2
Did you do any user testing? What were the reactions? What did you learn from it?
Goals to keep in mind during your project
If it's tough to think of a project or understand why this is important, here are some goals to keep in mind:
Show that you like coding so much that you code on your own.
Show what frameworks, languages, databases, etc. you know.
Show the level of complexity of projects you've dealt with (large codebase, multiple developers).
Show that you know how to use developer tools like github, APIs, opensource code.
Show that you can discuss what you are passionate about in detail.
Something to build your resume.
You cannot rely on class projects alone to get a job; you need to have other projects to add to your Resume and GitHub. Your GitHub should have a minimum of 3 fullstack web apps, and you should be able to demo these apps live on job interviews. These projects should be on both your Github and your personal site.
Here are some sites that will provide some information around building projects on your own:
Websites: Codementor, Dreamincode
Clone famous sites: look on Medium
MDN has many tutorials
React tutorials
Here's a list of APIs which could inspire you to work on a project:
Here are some other ideal examples of other students out there and what your competition for jobs is like (these are examples of projects created by employable students, posted on their GitHub pages):
See more examples of job market-ready students here: https://github.com/HackathonHackers/personal-sites
Keep in mind that while companies like to ask for the moon, you may not need to do everything they ask for. If you cannot do 100% then aim for 80%.
CS Practice & Self-Guided Learning
It can be a bit intimidating and also overwhelming when you find out all of the different languages and technical skills future employers would want from you. While classes at Hunter College will provide a solid foundation for you to start your technical careers, sometimes technology moves quickly, and skills might fall through the cracks. The best way to be prepared is to practice during your free time. It would be best to dedicate 5 hours a week during the semester and 10 hours a week during school breaks to practice other technical skills outside of what your classes require. Keep in mind, the 5 hour/10 hours is more of a guideline. Some students might need less time to practice, while others need more. These 5 to 10 hours a week can include regularly keeping a blog where you can document and reinforce your learning. The blog can also be used to show potential employers how you think.
On the table below, there are some websites on how to practice on your own time. There are plenty of sites to choose from, but these are a great place to start. Keep in mind that while you may learn data structures and algorithms in class, you need to practice how to use and apply them in the specific way technical interviews require, so it is HIGHLY recommended that you practice coding on sites like these.
Many employers will look at language proficiency before they look at anything else on your resume. While you learn C++ at Hunter, you will most likely have to learn other programming languages to get jobs and internships. It is highly recommended that you spend time on your own learning and practicing other languages to gain proficiency. Specifically, it is a good idea to start out by learning basic JavaScript, then learn two frontend JS frameworks. Try React/Redux and Vue. Then learn two backend frameworks, like Node/Express and Java Play or Spring. It is also good to learn Python and two data libraries (like Pandas and Matplotlib). Java is another language in high demand in the job market.
Here are some online resources for learning and practicing other programming languages:
Name of Company Basic Info URLs
Codecademy Free, structured online classes for Visit Code
different aspects of computer science
Coursera A wide variety of free and paid online courses Visit Coursera
Khan Academy A wide variety of free instructional videos online Visit Khan
Udemy A variety of online courses starting at $10 Visit Udemy
App Academy Free full-stack course from App Academy Visit App
Google Developers Training Learn to create apps for Android or the web Visit Google Developers
Free Code Camp Learn coding for free Visit Free Code
Lynda and LinkedIn Learning You can sign into Lynda for free using Visit Lynda and Linkedin
an NYPL card to access online courses
To use your NYPL card to sign in,
click the link then put www.nypl.org as the organization
Watch and Code Learn Javascript Visit Watch and Code
Eloquent Javascript A free pdf of a book to learn Javascript Visit Eloquent
ES6 Tutorial Free ECMAScript 6 tutorial Visit ES6 Tutorial
C and C++ Programming Become an expert in object-oriented design Visit C and C++
with these resources for developers, programmers,
and students. Find tips and projects for C, C++, C# and Google Go.
CS-STEM Network The CS-STEM Network's mission is to certify Visit CS-STEM
that students studying Computer Science and Robotics
have the requisite skills needed to compete in today's
evolving economy.
You can find a full list of all the pages on the Handbook here.....