# FAC talk 08.05.2021

---
## About Me
---
## Studied Biology with Psychology

---
## Then worked in Pharmacy

---
## Now work as a Consultant Software Developer

---
## And right now...
- Giving you this talk!
---
# Disclaimer
- Please don't let this talk be daunting!
- Even I don't follow all this advice
- Take it with a pinch of salt
- Only based on my experiences
---
1. Getting ready to apply for jobs
2. Working as a developer
3. The future
---
# Step One
## Get experience
---
## Projects are important
- Main bit since limited professional experience
- What talk about in interviews
- 1-2 Projects to showcase
- One could be your portfolio
---
## README
- Intro: what project is about
- Links to where can access it
- Badges: build status / testing
- Screenshots and videos (giphy)
- Split into features
- Markdown: use tables
- Tech Stack/Framework used
- Split into FE / BE
---
## README
- Developer instructions
- How to install
- How to run project
- How to run tests
- Who are contributers
- Roles
- Link to gitHub profile
- Extra
- More info on how designed / product research
- Folder structure
---
## Project Code
- Good folder structure
- Eslint / Prettier
- Readable code
- ES6
- Tests (end to end / integration /unit)
- TDD: Test Driven Development
---
## Project Code
- Error handling
- Don't just catch errors and console.log them
- Notify the user
- Use: <ErrorBoundary></ErrorBoundary> (React)
---
## Project Code
- Security
- No sensitive information (e.g. username/password) passed to BE using cookies / url
- Hash data (e.g. passwords)
- GDPR privacy laws
- User can delete all information
---
## Project on Github
- Commit messages are good (short / point)
- Pull requests made - good descriptions
- Evidence of code review
- Small number branches
- Good workflow
- Use issues (labels / assign)
- Git: milestones / Kanban boards
---
## Project on Github
- Contributors equal

---
## Running the code
- Easy to run - just one script
- Make sure it runs
- Ensure no errors or warnings in the console
---
## Make site accessibile
- Accessibility
- HTML elements heirarchy
- Good rating from audit

---

---
## Stand out
- Attend Hackathons
- https://www.meetup.com/UK-Hackathons-and-Jams
- Couple of days scoping then code together
- Online/remote ones (e.g. https://womendrivendev.org/ukvscovid19)
- Together or with new people
- Contribute to open source projects
- Giving back to the community
- Jobs
---
## Stand out
- Mentor others
- Codebar, FAC
- Document new learnings
- Post on Twitter / Github .md
---
# Step Two
## Advertise yourself to employers
---

---
## CV
- 1-2 pages
- 1-2 Projects
- Link to them
- Contact details
- Experience
- Other (mentor/volunteer)
- Tech Stack
- Check spelling etc
---
## Projects on CV
- Largest section
- Brief summary on aim/what about
- Timeframe
- Team (number of people)
- How worked (paired / Agile)
- Personal contributions (e.g. specific role?)
---
## LinkedIn

---
## LinkedIn
- Recommend each other
- Endorse skills on each other's profiles

---
## Twitter

---
## Twitter

---
## Meeting recruitors
- Conferences
- https://diversitytickets.org/en
- Networking in meetups
- Sicilon roundabout
- https://www.siliconmilkroundabout.com/
- Hackathons
- Contact company directly
---
# Step Three
## Getting a job
---
## What are your preferences?
- Big vs small
- Startup vs not
- Well known company?
- Front end / Back end / Full Stack
- Company culture
- How technical are higher-ups?
- Agile?
---
## Interview Process
1. Informal phone call / meeting
- Exchange details
2. Technical Test
3. (Visit in the office)
- Another tech test? (Paired programming)
4. Interview
---
## Technical Test
- Do it at home
- Small project already set up
- Series of tasks need to complete
- Within a time frame
- E.g. 2 hours
---
## Technical Test
- Looking at your code
- How work (commit messages etc)
- How prioritise work
- Be honest with your times (x hours to set up etc)
---
## Technical Test
- Is reflective of the company
---
## Preparing for a Tech Test
- Practice online
- Companies can post online
- https://kata-log.rocks/
- Codewars
- MDN Documentation
- Array methods
- Algorithms / Data structures
- Hackerrank, TopCoder, CS50
---
## Preparing for an Interview
- Research the company
- Always have 3-4 questions to ask them
- Basic technical questions
- Cracking the Coding Interview book
- Generic interview preparation
---
## At the Interview
- Focus on talking about your projects
- Know why chose frameworks
- Basic technical questions
- e.g. What is a closure
- Whiteboard simple tasks (e.g. invert)
- Let them give the number & then negotiate
---

---
## Working as a Developer
---
## Starting out
- Can take a while to set up the project
- Expect to read lots of code

---
- Expect not to understand lots of code

---
- Experiment locally
- Break things
- Learn how things interact
- Try to understand the code
---
- Ask lots of questions
- There are no stupid questions!
---
## Imposter Syndrome
- Most people in tech industry experience at one point
- Feel like you were hired by mistake
- Remember you were not!
- Colleagues are there to help
---
## Writing code
- Find other places in codebase achieved same thing
- See if there are any util functions you can use
- Or look for examples online
- Read framework documentation
---
## You will get frustrated

---
## You will get frustrated
- Part of programming
- Ask for help
- Can ask to pair programme
---
## Breaking things
- Sometimes you can introduce bugs
- Everyone does at some point
- How company responds
- Good test of company process
- Bugfixing skills
---

---

## Any questions?
{"metaMigratedAt":"2023-06-15T07:55:45.857Z","metaMigratedFrom":"Content","title":"FAC talk 08.05.2021","breaks":true,"contributors":"[{\"id\":\"b9886dc1-a4e4-41ec-9e95-b05d5f839378\",\"add\":9110,\"del\":2166}]"}