Skip to content

Latest commit

 

History

History
140 lines (89 loc) · 7.41 KB

career-resources.md

File metadata and controls

140 lines (89 loc) · 7.41 KB

Resume Advice

Interview Prep

  • Algorithms

    For interview purposes you should be able to:

    • Briefly describe how they work
    • Write a pseudocode version
    • Know when to use it
    • Know the running time and space complexity (Big O)
    • Be able to implement a working version
    • Be familiar with it's pro's and cons and optimizations, even if you can't implement them. eg: Quicksort can be improved by chosing the pivot at random, merge sort can be done back -and forth between two arrays in order to save space.
  • Datastructures

    For interview purposes you should be able to:

    • Briefly describe how they work
    • Write a pseudocode version
    • Know when to use it
    • Know the interface (eg: adding, removing, or finding elements)
    • Know the running time of the interface methods (Big O)
    • Know the underlying representation in memory (eg: a hash table stores values in an array)
    • Be able to implement a working version
    • Be familiar with it's pro's and cons and optimizations, even if you can't implement them. eg: Two ways to handle collisions when adding items to a hash table.

Whiteboarding

You may be asked to work through a coding problem on a whiteboard. Make sure you explain your thought process as you go and that your hand writing is legible. Practice at home on paper, or use whiteboard pens on a mirror. Remember to talk!

Pseudocode/coding without an editor

Some phone screens will involve pair coding on in a google doc or otherwise without your favourite editor. Make sure you can code simple functions without autocomplete!

HackerRank type platforms

Some companies will give you a take home coding challenge, or phone screen using HackerRank or similar platforms. Get familiar with the interface and try working through some of the problems with a time limit.

Interview Structure

Interviews vary wildly, but most will involve some, or all of these steps:

  • Phone screen with HR for "fit" purposes and to tell you what the rest of the interview process looks like.
  • Technical phone screen with an engineer. May include pair coding online with or without an editor, questions like "what happens when you type "google.com" into your browser and hit enter?" or "What is the complexity of inserting an item into a hash table?"
  • Take home coding challenge. This might be "Write a couple of functions using our API in your own editor, taking as much time as you like." or "You have two hours to solve a coding challenge and tell us how you'd build Twitter."
  • Onsite interview. This may be a couple hours or a full day of whiteboarding, pair coding and "fit" questions in one on one or panel style interviews.

Salary Negotiation

Building Your Portfolio

Make sure your code is somewhere potential employers can see it. If you're not on GitHub yet, sign up and learn how to use it. If you're into web development, build a website that showcases some of your projects. If you haven't built much yet, try implimenting some of the algorithms mentioned above and pushing those to GitHub.

Contribute to Open Source

Why?

  • You'll learn version control
  • You'll show you can work well with others
  • You'll learn best practices for your language/ this project
  • You'll learn to navigate large code bases (hint: "find" and "git grep" are your new best friends.)
  • You'll meet engineers who work for that company you really want to work for
  • You'll get code review so you can continue to improve

How to Choose an OSS Project

When chosing an OSS project, you'll want something that:

  • Is actively maintained
  • Has a good developer community where you can ask questions
  • Has good code review practices
  • Has good documentation for beginners
  • Has sufficient testing that you won't worry about breaking the build every time you make a pull request!

For projects that fulfill this criteria, and which are also out to do good in the world, check out Code Montage.

If there is a company you particularly want to work at, check out their GitHub or company site to see if they have open source projects you can contribute to.

Outreachy helps people from groups underrepresented in free and open source software get involved. They provide a supportive community for beginning to contribute any time throughout the year and offer focused internship opportunities twice a year with a number of free software organizations.

Google Summer of Code is similar to Outreachy in offerring paid internships for working on OSS, but requires that you are a full or part time college student, and is open to all, not just under represented groups.

Building Your Digital Presence

Networking

Networking is the best way to get your foot in the door. If you did CS at college or in a boot camp, you can use your school's network to find a job. If you're self taught, you're going to have to build your own. Checkout the WWCodeNYC Community Resources page to find a list of global and local organizations.

  • Ask your programmer friends and aquaintences if they know anyone that's hiring, or if they can forward you their recruiter spam.
  • Meetups are a good place to meet people, though many of the attendees may be just starting out and building their own networks.
  • Work on an open source project and get to know developers that way.

Where Do I Find a Job?

The Muse

Power to Fly

Hired

Planted

LinkedIn Jobs Board

New York Foundation for the Arts

Anonymous Thoughts on Jobs and Careers (Things Heard and Overheard)