├── README.md ├── My_First_Interview.md ├── what-sets-FAC-apart.md └── Front-end-engineer-questions.md /README.md: -------------------------------------------------------------------------------- 1 | # interview-tips 2 | 3 | A short guide to finding work after FAC. Here are some things I found out whilst interviewing and doing tests for jobs. 4 | 5 | 6 | ## Tests 7 | The test I were given seemed to vary in length and difficulty, I was sent a couple that were aimed at more mid level developers, I found these quite hard, and each took about 2 days to complete. 8 | + State which version of node you developed on in your readme (I developed on Node vs4 and some of the depenancies I used were not compatabile with earlier verisons of node, the company picked up on this). 9 | + Write a good FAC style readme, which details clearly how to run the project (if its a github repo). 10 | + Familiarise your self with common design patterns (ie MVC) 11 | 12 | I also completed some shorter tests on [Codility](https://codility.com), I much prefered these as they did not take two days to complete (always nice :-) ). They have some practice examples which are helpful to go through. 13 | 14 | ## Interviews 15 | + Google language specific interview questions and have some answers prepared. 16 | + Also sell your soft skills gained at FAC, ie working in teams, teaching each other and managing clients, I found that employeers really liked this, and FAC has given us an excellent grounding in these skills. 17 | + If they throw you a problem you dont know the answer to (this happened to me), talk through how you would go about solving it, even if you dont know the answer. 18 | + Talk about how you learn new things (we have done lots of this at FAC so should be plenty to talk about). 19 | + Mention any extra circcular activities (ie Node Girls, Hackathons etc). 20 | -------------------------------------------------------------------------------- /My_First_Interview.md: -------------------------------------------------------------------------------- 1 | My first Skype interivew is over and so I wanted to share the experience with you. 2 | 3 | My heart rate was higher than the first time I asked a girl out but hopefully the outcome will be better!! 4 | 5 | I felt a bit lucky because in the email exchange before I had been given an indication of how to prepare. Namely, 6 | I was asked to be ready to show and explain some of my code. This was a great reminder to only use best practices in your 7 | code because I struggled with some parts of it, trying to remember what things were meant to do and how they worked, which 8 | would have been much easier had I had comments there or just had my code more readable. 9 | 10 | Anyway, Skype rang and it was on. 11 | 12 | First questions were 13 | 1) 'How did you get into coding, having studied an irrelevant degree?' 14 | 2) 'What syllabus have you covered at Founcers & Coders?' 15 | 16 | Then I was asked to show some of my code and talk about it. I first demonstrated my beloved To-Do-List app that I had built 17 | in React, as this was a React position. I then asked which part of the code he would like me to talk about, trying to show 18 | that I understand it in its entirety and am ready for anything. He said: 'show me how you delete stuff', I proceeded to 19 | explain. 20 | 21 | He then asked about other bits of the code and what they did. 22 | 23 | Having finished this part of the interview, he noted that I demonstrated 'good basic understanding of React'. 24 | 25 | He then proceeded to show and explain the software the company develops and the code behind it. This took a considerable 26 | chunk of time. In fact, this was the majority of the 'interview' as opposed to asking me questions, which I found strange. 27 | 28 | At the end he asked where I lived and what salary I was expecting. I said £27,000. He said they were aiming to pay less. 29 | 30 | It was a short interview. 31 | -------------------------------------------------------------------------------- /what-sets-FAC-apart.md: -------------------------------------------------------------------------------- 1 | # How to explain FAC 2 | 3 | FACsters may come across someone who is more familiar with other bootcamps e.g. Makers. You may have to explain what FAC is, but wouldn't want to end up selling this place to people rather than selling yourself. 4 | 5 | Let's collate suggestions here about how to explain FAC and everything that it gives you, which you may not get elsewhere. Anyone is welcome to add more ideas to this! 6 | 7 | This has been my response to that question: 8 | > Without going through each course yourself, I guess it's always difficult to know, but I'd say there are some distinct differences: 9 | > - FAC is purely JavaScript, i.e. Node in the backend (and Postgres in terms of databases) 10 | > - Unlike other bootcamps, FAC is a completely free course and therefore takes graduates based on merit. This is down to the overarching philosophy of the business - to open access to education by building peer-led learning communities where people study creative technology. As such, the pre-requisits to get onto FAC (http://www.foundersandcoders.com/apply/) mean that a different amount of knowledge is needed before even starting the course. 11 | > - F&C breathes open source values into everything that we do. For example, all students are encouraged towards writing rigorous documentation, using and contributing to open source learning materials, and building our own npm modules. 12 | > - We build a different project each week, in teams of 4. Students employ the practice of pair programming at all times 13 | > - FAC don't allow the use of any frontend frameworks, or at least not in the taught portion of the course (the first 8 weeks). We also emphasise a thorough understanding of core Node.js, but towards the end, we do then allow the use of Hapi in the backend. Part of the reasoning behind the "no frameworks" rule is so that we fully appreciate what problems each framework is solving, and are able to therefore make more effective judgements on what to use. Another advantage is arming students with the flexibility to switch between technologies, as the popularity of each one can shift. And lastly, FAC values are heavily aligned with open source software. So I think the idea is also to enable students to contribute to and improve upon existing technologies. 14 | 15 | That part became instrumental in writing the "no frameworks" explanation of our [house rules](https://github.com/foundersandcoders/master-reference/blob/master/coursebook/general/house-rules.md) 16 | 17 | > Perhaps the biggest difference is in the setup of the organisation: 18 | > - FAC is a co-operative. Each student that goes through the course is welcomed into the business. My cohort is particularly heavily involved in the business meetings, since FAC is currently expanding. My personal role is to further our community outreach, by organising workshops for schools in the local area. 19 | > - Each cohort is responsible for teaching the next cohort. So there is dedicated time at the end of each week to reflect on and suggest improvements to the curriculum and the teaching. The idea is that each curriculum is an iterative improvement upon the last one, and therefore all that has gone before it. 20 | > - Each current cohort is collectively responsible for running FAC's weekly meetups, targeted towards people who are new to coding. This often attracts those who are interested in applying for the course, but is not exclusively for applicants. It is a chance for students to start mentoring early on, to gain experience in hosting events, and just pass on their knowledge in general. 21 | -------------------------------------------------------------------------------- /Front-end-engineer-questions.md: -------------------------------------------------------------------------------- 1 | # Front-end engineer interview tips 2 | 3 | ## Work on your portfolio 4 | They want to see that you know what you're doing. The best way to do this is to have a body of work on Github (or actually deployed) that you can point to. 5 | 6 | ## Question time 7 | You might not be asked to write out algorithms on a whiteboard but you will still be asked technical questions. 8 | There are loooads of lists out there with front-end developer questions that are worth swotting up on. 9 | Here are some of the ones that F&C members have been asked. Please add your own: 10 | 11 | ### Technical topics: 12 | * Responsive design principles 13 | * Best practices for loading assets quickly 14 | * What is so cool about SVG? (With regards to optimisation) 15 | * Making database calls from the front end 16 | * General front-end performance questions 17 | * Semantic HTML 18 | * SEO 19 | * What is the difference between `null` and `undefined` in JS? - `null` is for a value that is nothing. `undefined` is the absence of a value. Or a good analogy I was told: `null` - an empty box on a shelf; `undefined` - there is no shelf. 20 | * What is transpilation and what are some issues with it? 21 | * What is object-orientated programming, what's functional programming and what's the difference between them? 22 | * What's a closure, when would you use them and when wouldn't you? 23 | * What's the box model? 24 | * Tell me about Elm (after I mentioned we're learning it - everyone seems interested when I mention it) 25 | * How does Elm's type system, and typing more generally, work? 26 | * What happens when you click a link? - If you want to go super deep you can go through [this](https://github.com/alex/what-happens-when) 27 | * What does 'agile' mean? Four principles [here](http://agilemanifesto.org/) 28 | * What's source control and why do you use it? Which ones have you used? What is different about Git? 29 | * Describe different ways to create objects in JavaScript. 30 | * Explain what is prototypal inheritance. 31 | * How familiar are you with ES6 and talk me through some new ES6 features. 32 | * What are some advantages of functional programming? 33 | * Tell me about the BEM methodology (after I used it in a pair-programming session) 34 | * How would you define good UX and how subjective it is? How would you convince a client that option A is better than option B in UX terms? 35 | * How would you find a missing number in a sequence of consecutive numbers, e.g. `[1,2,4]`? 36 | * How can you handle async flow with `Promises`? 37 | * How would you write the following function `add(2)(3)`? 38 | * What is the difference between `pipe` and `compose`? 39 | * What is the difference between `currying` and `partial application`? 40 | * Given an array of users how would you write a function that returns the total age of everyone whose name starts with letter `M` and who has been born after `1976`? 41 | 42 | ### General questions: 43 | * What are your strengths and weaknesses? 44 | * Do you prefer front-end or back-end? 45 | * What is you favourite framework? 46 | * What are you excited about in the tech world in the next 12 months? 47 | * What projects do you have online that you can show us? 48 | * How would you define 'quality'? 49 | * What do you think about retrospectives? 50 | * What story would you tell about F&C to someone thinking about applying? 51 | * If you had to give an award to one person at F&C, who would it be and what for? - @cleo for being awesome at explaining things. 52 | * What are the characteristics of a good software engineer? 53 | * Where do you see yourself in 5 years time? (all time classic!) 54 | * Tell me about a successful and a negative teamwork experience. What went well and what went wrong in both cases and how you dealt with it. 55 | 56 | ### Lessons learnt from interviews 57 | - If you don't know the answer, just say so. Describe how you would approach the problem. 58 | - Ask for questions and show them that you are interested. Do your research before you go. 59 | - Highlight why the F&C course is special (have a look at @jsms90's lovely summary [here](./what-sets-FAC-apart.md)) and what you learnt during the course. People get very excited about the course and this reflects well on us as graduates. Don't forget to mention our mentoring role for the weekly meetups and for teaching the next cohort. 60 | - Ask them if they want to see your projects, bring your laptop and be prepared to walk them through your work. 61 | - Pen and paper or whiteboard if you need it to write down or explain your thought process. 62 | --------------------------------------------------------------------------------