Skip to content

Commit

Permalink
Table of contents
Browse files Browse the repository at this point in the history
- Add table of contents
- Add bullet point in full-stack projects about publishing to repository
  • Loading branch information
chasenyc committed Jun 29, 2020
1 parent e781561 commit a752210
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 12 deletions.
20 changes: 14 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
# Getting your first job
I’m writing this to help answer some of the many questions people have about being prepared for getting their first software engineering job. There is a lot to unpack to making yourself an ideal candidate. There is no perfect answer to being the ideal candidate but these will without doubt help you become a more attractive candidate. There are portions of this that will not apply to everyone, it is important to know, missing any section of this by itself will probably not be what makes or breaks you getting your first job.

## School / Internships
## Table of Centents
* [Education](#education)
* [Portfolio](#portfolio)
* [Interview Prep](#interview-prep)
* [Applying](#applying)
* [Beyond](#beyond)
* [Resources](#resources)

## Education
**Internships**

Making sure to get internships throughout your college career is a hugely impactful on getting your first job. In many cases internships will often lead to being offered jobs, but even when it does not, having these on your resume will make a world of difference. Especially for internships, having a solid understanding of data structures will make a big difference in getting those internships. There are a wide range of great resources available to help ensure you have the fundamentals down for any internship interviews but below are a few exceptional standout ones to start with:
Expand Down Expand Up @@ -32,7 +40,7 @@ For those who are taking an alternative route such as a coding bootcamp or self-

Not getting an internship is in no way a death sentence for getting your dream job. There are people who have had no internships on their resume who will get a dream job offer. Whats important to focus on is what is in your control. That is how you spend your time that you do not have an internship. Take the time to build out your portfolio, spec out and build a small full stack project, a library, a light-weight testing framework. Anything to demonstrate what you are capable of will make a world of difference in being an appealing candidate.

## Github / Portfolio
## Portfolio
One of the biggest challenges a lot of college candidates seem to lack and bootcamp graduates tend to have more of, is a github profile with what looks more like real world experience. Having some relevant full stack applications to show a potential employer will leave them much more confident in your abilities and will definitely help you get call backs when applying to jobs. An in-depth primer of picking a good project can be found [here](/github/fullstack-projects.md).

It is important to realize that having a good github profile is not simple about having a few random repositories thrown up. Engineers who will be looking through candidates profiles will have a few things that immediately jump out to them. A well crafted README is very important, you can read more about that [here](/github/readme-guide.md).
Expand Down Expand Up @@ -64,7 +72,7 @@ Preparing for the interviews is an extremely important process and is not someth

The most important piece of advice is to start this process early and practicing often. There are endless great resources for interview prep, github repositories, YouTube videos, free and paid services. Keeping your skills sharp and being prepared far in advance will pay great dividends when it comes time to start interviewing.

## Applying to jobs
## Applying
There are a variety of portals to find jobs and this list is not comprehensive but:
* [Linkedin](https://linkedin.com)
* [Angel List](https://angel.co) - Mainly smaller startups
Expand All @@ -85,14 +93,14 @@ A lot of people tend to get very discouraged by not hearing back from any jobs.

Do not be discouraged by the lack of hearing back! Do make sure you have all everything prepared before applying to maximize your chances. It really will feel like you will never get a job but you will. Learn from any mistakes you make, if you are having terrible luck evaluate what you can do better, where your knowledge gaps are and continue to apply.

## And Beyond
## Beyond
**It gets easier**

The first job is by far the hardest to get, keep that in mind, whatever you go through in this process, everything after it will be immensely easier. Once you have real world experience, have worked in a production environment, understand real-world probled and workflows you will be a much more desirable candidate.
The first job is by far the hardest to get, keep that in mind, whatever you go through in this process, everything after it will be immensely easier. Once you have real world experience, have worked in a production environment, understand real-world problems and workflows you will be a much more desirable candidate.

**Build a network**

One of the most important things you can do is to keep a network of friends who work in the field. Getting a job working somewhere you know someone is so much easier than cold applying places. For most people having an ex-coworker recommend you will go a long way to making the interview process a lot easier. Having someone vouch for you gives you a great positive bias the moment you walk in the door, it wont 100% guarantee you a job but it certainly gives you a leg up. That is why so many companies payout high referral bonuses to employees, because it makes their lives a whole lot easier to find someone they know they can trust (and they don't have to pay a recruiter).

## Other Resources
## Resources
Below is a list of resources that I have found extremely helpful. While I have not used every product I'm listing resources I know have a proven track record of success. You can see the [full list here](resources/links.md).
16 changes: 10 additions & 6 deletions github/fullstack-projects.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,29 @@
Full stack projects are a great way to show you know your stuff. But its important to define what makes a good full stack project. The most basic definition would be that there is both a backend and a front end to your web application. A few things worth making sure are a part of your project are the following:

## Criteria for a good project
- **Front-end user facing portion of the site**
* **Front-end user facing portion of the site**

This should be styled with css, copy another sites design if you need to. It is important not to spend too much time trying to figure out how to make your site looks nice. You are not a designer and this should not be your main concen
- **Backend serving responses to the front end**
* **Backend serving responses to the front end**

Depending on what kind of front-end you are using this quite possibly will be an API returning JSON. You should explore creating a RESTful API as a good standard for a small project's backend. Using a RESTful API will demonstrate your understanding of best-practices.
- **Data store**
* **Data store**

Some sort of database being used, while any data store is a plus. It’s definitely better to pick something that both reads and writes to the data store. For example having a text file filled with chess moves may not be quite as impressive as a MySQL database that user submitted input will be stored and read from.
- **Authentication**
* **Authentication**

Some sort of implementation of basic authentication implemented, this is an easy win in many cases as modern web frameworks will provide this right out of the box
- **Use of 3rd Party API**
* **Use of 3rd Party API**

Some sort of interaction with a third party API such as google maps or even better if you can find a completely free one that will integrate nicely with your chosen project
- **Live site**
* **Live site**

Having this site live on the internet is a huge positive. As an employer being able to go to a website and see the results of your work help. Even if the code is what really matters, having something people can see has a real intangible benefit. A service like [Heroku](htps://heroku.com) is great as they provide a free tier where you can deploy a live application without paying a penny.

* **Public Repository**

More important than a live site is a place where a potential employer can review your code. Seeing the final product is important but seeing the work you did to acheive the final product is a must. Make sure you have an [excellent readme](readme-guide.md) for the repository.

### Project Ideas
It s a good idea to try and find a project that hits most of the bullet points above. In most cases if there is something you are passionate about and can figure out a way to tie it into a full stack project that’s always best as it shows some of you personality and it will be something you are passionate about. If for example you are an avid chess player, building a site that analyzes opening moves and allows users to store their games would be a great idea. More often then not if you do not have some sort of original idea cloning some site's basic functionality is a great option. The following are a few ideas for those who are a little less inspired or need some guidance.

Expand Down

0 comments on commit a752210

Please sign in to comment.