Skip to content

HackerYou/new-job-tips

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 

Repository files navigation

new-job-tips

πŸ”₯ tips for starting your first development job

Starting a new job?

The HackerYou community is here to help! We've got hundreds of grads with great advice to share.

Want to contribute?

To contribute to this repo, make a PR! To keep things organized, put your advice under the corresponding category or start a new one!

Categories

1.General Advice

2.Development Environment

3.First Day Stories

4.Terminology

5.Resources

1. General Advice

  • Ask a lot of questions! Don't be afraid to ask. Many times future frustrations about the tech stack or the approval process can get resolved waaay before you even start putting your first line of code down.

  • The two most important questions you can ask are how and why -- how should something be done? Why should it be done that way? You have valuable experience, and should (slowly!) question why and how things are done.

  • Spend 15-30 minutes googling a problem before asking for help from a senior dev or on helpme. This will build up your debugging muscles!

  • Here's a great article on how to google effectively. Let this be your guide to improving your google fu.

  • Any time you get a sense that an error you get in your setup or development process might be repeated later, write the error and the fix down! Very often, the problems I get in my console that prevent me from working are solved by a few simple commands, and you save a lot of time by knowing you've seen an error before, even months previous.

  • Try to spend some time getting acclimated to the culture of the place. If other staff members prefer to be contacted over Slack instead of tapped on the shoulder and interrupted while they're working through a problem, best to get in the habit of doing things that way.

2. Development Environment

  • Visual Studio Code -- Vsc lets you export your custom settings (it's just a giant JS object anyway), so you can import / copy-paste that into your machine at work when you're done.

  • git -- More important than what you use to manage your workflow (Github, Sourcetree, plain ol' git on the command line, etc., etc.) is that you have a setup that you like and that you know. Get comfortable with how git works and you'll be able to pick up anything your workplace uses to manage development very easily - or know if you'd prefer to not use it at all.

  • brew (OSX) -- If you have a Mac, brew will help you get up-and-running with dependencies in a snap. Only available for OSX.

  • node -- You'll be using node at some point. Pre-processing CSS? Bundling React? That's gonna require Node. The latest long term support version of Node, v8.0.0, supports async/await.

  • nvm -- Use nvm sparingly - it can cause do more harm than good. nvm allows you to switch between Node versions, allowing access to bleeding-edge features or downgrade to Node versions that work with certain modules.

  • MAMP -- If you're working in WordPress, you'll want this local server environment for theme development.

3. What my day one was like

"for me, it was three days of just setup. Somewhere along the way I asked for a 101 on the company's tech stack and where my work as a FE fit into all of that. After that it was learning the jira / QA process and participating in the standups. Did very little actual work. - Miguel

"My first day at my first new job I was thrown RIGHT in the deep end. No HR, no onboarding -- just go hard, nerd. If you find yourself in this situation, remember -- everything's gonna be okay. Take a deep breath, roll up your sleeves and don't let 'em see you sweat -- even if you're terrified! - Jordyn

"My first day at my first job out of bootcamp felt very intense at the time - basically just being left to set up a dev environment with an old readme for directions, beginning to pick up tasks and fix bugs, it felt like a lot of pressure at the time - but it's amazing, thinking back, how quickly it began to feel like home. Every place has a different onboarding process, but the one thing they have in common is they all want you to succeed. You got this!" - Adam

4. Terminology

Process

  • Agile - a type of software delivery process oriented towards using technology to your customer's advantage. Focused on short, iterative development and delivery of software
  • Continuous delivery - a technique that promotes rapid deployment of code through automated methods. Continuous delivery and continuous integration are often paired together in agile software delivery methods.
  • Continuous integration - a technique for developers to contribute code to a shared repository easily and safely. Allows for early detection of problems.
  • Jira - a (frustrating) type of task management software for developers to log work done.
  • Kanban - a type of software delivery process using a board with various cards of what's to do, what's being done and what's done. Cards are moved across the board as work is completed.
  • Product owner - a person in a scrum team who creates a vision of how a product should work and prioritizes features based on that vision. Communicates that vision to scrum team
  • Scrum - a type of software delivery process oriented towards teams that can accomplish
  • Scrum master - a person in a scrum team who keeps the team sticking to the process and helps improve and iterate on the scrum process.
  • Stand-up - a brief, 5-15 minute group led by either a scrum master or product owner. Focused on three questions: what you did yesterday, what you're doing today, what's blocking your way.
  • Test-driven development - a form of coding where you build tests to fail, then write as little code as possible to pass
  • Waterfall - a type of software delivery process where certain milestones need to be accomplished in a certain order for work to be complete.

Web application frameworks

  • Angular - Google's web application framework of choice. Comes in two flavours: 1.x and Angular 2 and above.
    • Angular 1.x Monolithic framework using the Model-View-Controller design pattern.
    • Angular 2 and above A componented-oriented framework which uses Typescript, a strongly-typed flavour of compiled JavaScript.
  • Ember - 'Highly opinionated' web application framework focused on building single-page applications a very specific way.
  • React - Facebook's web application framework that uses components to ease the developer experience. Uses a virtual DOM to differentiate between changes in internal JavaScript objects.
  • Redux - A state management library for web applications, primarily used in React environments -- but not always.
  • Vue - Another popular component-based web application framework, uses components, JSX and a virtual DOM just like React -- except faster.

5. Resources

About

πŸ”₯ tips for starting your first development job

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •