## Codebar Monthlies Talk time!

---

---

---
## About Me
- Parents are Chinese, born in Australia, brought up in UK
---
## Studied Biology with Psychology

---
## Then worked in Pharmacy

---
## Now work as a Front-End Developer

---
## And right now...
- Giving you this talk!
---
1. Getting ready to apply for jobs
2. Working as a developer
3. The future
---
# Disclaimer
- Please don't let this talk be daunting!
- Take it with a pinch of salt
- Only based on my experiences
---

---
# Step One
## Learn to code
---
- Bootcamps
- Founders & Coders, Flatiron School, Maker's Academy, General Assembly...to name but a few
- https://www.switchup.org/rankings/best-bootcamps-london
---
- Self taught
- Workshops
- codebar, Node Girls, FAC mini course, hackathons, codewars evenings, other meetups, befriend someone
- The internetz
- Freecodecamp, FrontendMasters, Codecademy, Katacode, framework docs
---

---

---
# Founders and Coders Pre-reqs
- https://www.foundersandcoders.com/apply/
1. FreeCodeCamp
- Responsive Web Design Certification
- JavaScript Algorithms and Data Structures Certification
2. Create a one-page website in HTML and CSS
- With image carousel
- Without libraries
---

---
# Step Two
## Gain experience
---
## Projects are important
- Main bit since limited professional experience
- What talk about in interviews
- 1-2 Projects to showcase
---
## 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 / boards
---
## Project on Github
- Contributors equal

---
## Running the code
- Make sure it runs
- Ensure no errors or warnings in the console
- Accessibility
- HTML elements heirarchy
- Good rating from audit

---

---
## Stand out
- Attend Hackathons
- Couple of days meet and code together
- Online/remote ones
- Together or with new people
- Mentor others
- Contribute to open source projects
- Giving back to the community
- Jobs
- Document new learnings
- Post on Twitter / Github .md
---
# Step Three
## Advertise yourself to employers
---

---
## CV
- 1-2 pages
- 1-2 Projects
- Link to them
- Contact details
- Experience (MercyCorps bootcamp)
- 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

---
# Step Four
## Getting a job
---
## There are lots!

---
- Big vs small
- Startup vs not
- 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
- Usually 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 - public tech tests
- Codewars

---
## Interview
- Research the company
- 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)
- Always have 3-4 questions to ask them
- 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 some 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
---

---
## Working at Ticketmaster
- About 6,000+ employees
- Founded in 1976
- Legacy code
- International (we deal about 13 markets)
- Interesting problems: translations
---
## Agile

---
## Stories

---
## Refining session
- Beginning of each week
- Define stories
- Discuss how to solve technically
- Who in other teams need to talk to
- Ensure has enough details (Problem statement)
- Story pointing
---
## Stand Up
- Every morning
- Update: What was working on, what will work on, any blockers
- Product owner sort blockers
- Look at the board
- Kanban board
---
## Retro
- Every two weeks
- Stop / Go / Continue
- Set amount of time to write points on post-its
- Reflection
- Chance give feedback
- Improve the process
- Action points decided
- Assigned to be done before next retro
---
## Day to day
- Front End developer
- React Native
- Team of two FE Devs (within larger team of ~12)

---
- Assign to a story
- Usually only one at a time
- Write code for it
- Make a pull request
- Documentation very important
- Code review: 2 other developer approvals
- Adjust code (git rebase)
- VS Extreme coding
- Check with designer and product owner meets requirements
- Merged into master / goes to production
---
## Step Four
### Staying employed
---
- Keep updated
- New frameworks etc
- Twitter
- Read new releases from frameworks
- Conference videos
- Keep learning new frameworks
- Side projects
---
- Attend/watch Conferences, Twitter updates
- Continue volunteer
- Give talks / mentor / hackathon / open source contribution
- Good for finding future jobs / networking
- Think about specialising (FE vs BE / technologies)
- Keep CV and LinkedIn profiles updated
---
Feel free to reach out via Twitter: @hel_zhou

{"metaMigratedAt":"2023-06-15T01:56:11.646Z","metaMigratedFrom":"Content","title":"Disclaimer","breaks":true,"contributors":"[{\"id\":\"b9886dc1-a4e4-41ec-9e95-b05d5f839378\",\"add\":9746,\"del\":303}]"}