Skip to content

Latest commit

 

History

History
408 lines (260 loc) · 43.4 KB

study-manual.md

File metadata and controls

408 lines (260 loc) · 43.4 KB

Welcome to our program!

On average, we receive 100-200 applications for every new cohort. Therefore, to be accepted into HackYourFuture is a big accomplishment. So congratulations!

You are now a member of a large community. 180+ trainees have graduated from HackYourFuture and more than 85% find a job as a professional web developer or software tester. However, our course will be challenging. For the next 7 months there will be moments in which you might want to give up...If that happens, it is important to remember that you are not the first to go through this! Many of our trainees, who are now in professional jobs, found the program difficult and have at some point thought about quitting the course but they pushed through! Based on their experiences, we compiled this guide to share with you the lessons learned throughout the more than 30 cohorts that went through the program before you.

This guide consists of 3 chapters. In chapter 0 we lay out the foundation of the HYF organisation. In the second chapter, we provide a summary of our program. The final chapter focusses on what you can do to get through the course.

Like you, this document is always improving. If you feel something is missing or might be improved, please let us know and we might add your suggestion.

Good luck on your journey!

The HackYourFuture team

Table of Contents

Chapter 0: The Organization

HackYourFuture was founded in 2016. We saw many talented people coming to the Netherlands as a refugee, but many had difficulty finding a job. At the same time the tech/IT sector is looking for talent to fill their open vacancies. That does not make any sense :) You can read more about the story of HYF on our website.

HYF is a foundation, which means we do not make profits. However, we do make costs of course. Our program costs around EUR10000 per graduate that finds a job, yet the education is free. How do we do this? Currently, we receive most of our revenues from donations (60%) from large foundations like the ING Netherlands Fund, Stichting Doen and the Oranje Fonds. We also receive donations from companies and individuals (mostly former trainees). The rest of our revenues we receive through an education fee we ask to companies that hire our graduates.

One of the main strengths of our organisation is that we rely heavily on the contribution of our mentors, all professional software developers and testers, that help to correct assignments, train cohorts and guide you through the program. Some of our graduates are now teaching at HackYourFuture! Currently, we have 4 paid employees on the payroll and together they form the 'core-team' of HYF. They keep the program running, update the curriculum, promote the organisation to find jobs and funding and are there to support you at every step of the way.

This RePo lays out our core values. These core values are leading for all of us involved in HackYourFuture: staff, alumni, trainees and mentors. They are leading in how we learn and teach and interact with each other. Please read them carefully.

Also make sure to read and sign our code of conduct, which you can find here. If you have any questions, feel free to ask them during introduction day or by approaching one of the core-team members on Slack (our internal communication platform - More on that later).

Chapter 1: Course Overview

During the next half year, you will study a variety of technologies and ways of thinking. This will build a solid foundation for you to become a web developer. What does this mean?

At the end of the 7 months you will leave HackYourFuture with:

  • The skills to build your own full-stack web applications
  • Experience working in a team
  • Access to the Alumni Network: a community of HackYourFuture graduates
  • A decent CV and LinkedIn profile coupled with interview skills
  • Introductions to companies looking to hire programmers or software testers

In order for this to be turned into reality, you will have to work very hard. In the following section you will find an overview of all the subjects you’ll be learning about throughout the course.

1.1 Curriculum

The 7 months are divided into different modules, each building on the one before. Here’s the overview.

However, there is no time to rest after graduation because the next challenge will be to find an internship (see also section 1.8). After you graduate it might take some time before you actually find an opportunity, around 0 - 3 months (depending on different factors which youll hear more about on your first career training). That is why we have developed the Post-Graduation Package, a set of additional resources and technical projects that will help you improve your skills, enrich your portfolio and thus increase your chances of finding an internship.

In short, as long as you have drive and work hard, we will be there next to you to help you gain the skills you need to start your tech career!

How to Improve the Curriculum!

  1. Go to the Github page you want to add a suggestion to.
  2. Click on Issues.
  3. Click on New issue and add your suggestions. This can be a URL to an article, a video, graphic or anything else that will improve the curriculum.
  4. We will review it and if we find it useful, add it to the curriculum.

We are looking forward to your ideas & suggestions! alt text

1.2 Weekly program

To succesfully follow the program, you will have to stick to a schedule and manage your time well. During the week you will have lectures, materials to read, assignments, and even sometimes additional sessions (like career trainings), tests and interviews. It is important to plan your week ahead of time in order to work and study effectively (see also chapter 3: Study Strategies). In summary your study week for HackYourFuture is as follows:

Day Activity
Wednesday-Thursday Video lecture + Readings for this week
Friday-Saturday Work on the weekly assignment + Submit question for the Q&A session
Sunday Q&A Session 12-3pm (usually ends earlier)
Monday-Tuesday Finish the weekly assignment (deadline Tuesday 23:59) + Implement feedback on previous assignments

The additional sessions, tests and interviews will be planned with enough time in advance so you can fit them in your schedule.

The video lectures are included in the curriculum on GitHub. (you can also find them on our YouTube channel). In these lectures, one of our mentors explains the core concepts of this week and provides you examples and exercises.

You are also asked to do the weekly assignments and readings practically every week (see next section). On Tuesday you will have to submit your assignment and, on Saturdays, at least one question before the Question and Answer (Q&A) session on Sunday. The Q&A session is an online meeting where the mentor will answer your questions, so please come prepared! They might also ask YOU questions. Submitting weekly assignments and Q&A’s are mandatory!

Currently, due to Corona all of our education is online. In the near future we hope to go back to more face-to-face sessions, but is not clear yet when that will happen.

1.3 Assignments

As mentioned before, our complete curriculum can be found on Github. Each modules is ordered sequentially and the assignment can be found in the module repository. For example, if you click on HTML-CSS you’ll be taken to the document that has all the information about that particular module. If you scroll down you’ll see a table with a column Assignment. alt text

After the first couple of weeks, Github will also be where you will publish your assignment. GitHub can be challenging to use at first, but there is a reason we use it: It is the number 1 platform for programmers! In order to become a good programmer, you will have to understand how Github works and become a master at it. You will notice that after a few weeks, finding the right weekly assignments and reading, as well as publishing your assignment on Github will become automatic.

Assignments are part of the curriculum practically every week and it is expected that you finish them (and hand them in) on time. As you might have read in our culture page, you should think about HackYourFuture as a job and not a hobby. Not handing in your assignents on time without proper reason and communication will not be accepted (see also our values and our 3 strike policy). During HYF we not only look at your technical skills, but we also want to see that you are a reliable person that works hard, delivers on time and communicates accordingly. While you might find a job without these skills, it will be hard to keep that job and that is why we are strict with the way we work. Not less important, the assignments are specifically designed to be sure you have the required skills at the end of each module!

1.3.1 Review process

Quick overview

  1. You get assigned a mentor at the start of the module in the slack group chat. They are responsible for reviewing your work for the duration of the module.
  2. You are responsible for getting your code approved by your assignment mentor by communicating with them.
  3. The assignments need to be approved within two weeks of the final deadline.
  4. Please don't hesitate to contact Joséphine if you are facing any issues. We are here to help you out!

Review process

Together with the assignment mentor and other trainees in your group you have the freedom to decide on the way of communication. You can do video calls or get feedback via comments to the PR.

Please make use of your assignment mentor's time by asking questions until the material is clear and the code is pristine. This is an invaluable part of being at HYF that will allow you to get the feedback you need to improve. Also be sure to thank your assignment mentor for spending their free time helping you!

Timeline feedback
Days Activities
Tuesday (week 1) Deadline for you to hand in your first version
Wednesday (week 1) - Tuesday (week 2) Mentor provides feedback
Wednesday (week 2) - Tuesday (week 3) You improve assignments based on the feedback and assignment mentor evaluates improvements
Wednesday (week 3) Core-team member Assignment Approval Check. At this point every PR needs to be approved.

It can happen that your mentor doesn't reply on your questions or your updated assignment. Give them a day or two, but if you are still stuck then please send a reminder to your assignment mentor via slack. If that doesn't work and you're afraid you can't make the deadline, contact your supervisor (Joséphine).

Labels

It is important for the you and the core-team to have up to date info about the status of the assignment. This is why the mentors use two labels on your PR.

Label Description
no label not reviewed yet
Needs work reviewed, but you need to implement feedback
Approved reviewed, and your assignment has been approved

Here is an example of this in action.

labels

Responsibility

It is your responsibility to make sure the pull request gets to the Approved state so make fixing the feedback given by the mentor your top priority when you get it! Submitting your assignment, getting feedback and implementing that feedback in a timely manner is a similar process to the on you will encounter when working. It is important that you answer to your mentor' messages on your assignment just like if you would with an actual colleague. Keep in mind that the mentor puts a ton of effort to help you out, so be sure to thank them and react on time! Small things like that go a long way!

It could happen at times that it takes a little longer than ideal for our mentors to pick up the assignment and give you feedback (they do have full time jobs after all), but if there is no review yet on the Q&A day then please contact your supervisor so they can see if someone else is available to review it. Again, feedback is crucial for you to learn the right way.

INTERESTING FACT: When you apply to internships/jobs further down the line companies expect to see a link to your GitHub there to see your projects, your code, etc. Keeping an organised GitHub (and collaborating with other well in the platform by answering to feedback, thanking for contributions, etc) will always create a good impression about the way you work.

1.3.2 A note on copying code

You will probably hear at some point at HYF that programmers copy and paste code into their applications all the time. While this is true, during your studies we want you to really think about how to solve something before aking google to help out. The exercises are made to be doable, but solutions to them are probably easy to find online as we want to teach you practical things which you may need in the future. If you just copy code from google you will not learn whats needed and that will become visible in your tests, interviews or, even worse, during your internship.

There are occasions where you will copy code from the internet. In such a case, the following criteria applies:

  1. A reference should be given of were the code is coming from (in a comment)
  2. Don't copy code from fellow trainees!
  3. It must be clear which part of the code you copied
  4. The functionality of the code should be explained in the comment. This should ensure you fully understand what the code that you copied does.

The last one is most important there, do not ever put anything into your codebase that you do not understand!

If we (or your mentor) notices that you copied code without applying the rules above, we will see that as plagiarism. In any case of fraud or plagiarism, you will be taken out of the program.

Last but not least, when you copy code you dont understand, you might feel things are going great when in fact they are not. Is a lot better to accept you are struggling or having a hard time with the task at hand and ask for help. A great programmer is not that one that knows every solution. Sometimes the best programmer is that one that knows how to look for solutions by himself and if after some time he doesnt find the solution, he asks for support. Your supervisor, mentors, colleagues and the core-team is here to help you. Use that to your advantage.

1.4 Tests

At HackYourFuture the material is mostly self-study and our lectures are taught by many different mentors. This means that we can’t follow the progress of every trainee during a session. But, we're interested in your progress and your level of understanding which is why we have tests.

Three other important reasons why we have integrated them in our curriculum are:

  1. You have the time to go over all the concepts again and make sure you understand them well.
  2. We can indicate who needs a bit more guidance throughout the curriculum.
  3. We can assure a certain level of understanding of the concepts in our curriculum to the companies we send your CVs to.

If we see one of the trainees does not do well in one of the modules we can pair them up with an experienced mentor for one-on-one support, offer you more time to catch up, etc. It all depends on the particular case at hand and why you are falling behind.

General rules for the tests:

  • You can only enter the project once you pass the React test.
  • Don’t share the questions and/or answers of your tests with trainees from your or other's cohorts. We also see this as fraud.
  • You are not allowed to have contact with other people during tests unless indicated otherwise.
  • Although we wholeheartedly encourage you to use ChatGPT to help you learn (so not to do things for you without understanding it) during the JavaScript test it is not allowed to use it. For the rest, use it as much as you want.

Grading system:

  • The lowest grade is a 1.
  • The highest grade is a 10.
  • A 6 is sufficient (but not the best...)
  • Every grade lower than a 6 is insufficient.
  • The interview tests only have a pass/fail
Module (test description) Less than a 6 6 or higher
Javascript (good old-fashioned test) Depending on the mistakes made we give you more time to revise JavaScript or provide you with extra support in Browsers Cool, you understand the core concepts of javascript!
Browsers (Group project + individual interview) The HYF team will decide if it is best to take a break and rejoin the next cohort or if this is the end of the road at HackYourFuture. You can handle yourself in a group and understand how to make basic JavaScript websites.
Using API's (Individual project + individual interview) Based on previous results, the HYF team will decide if it is best to take a break and rejoin the next cohort or if this is the end of the road at HackYourFuture. You can handle vanilla JavaScript frontend applications for public API’s. Time to go onto the backend!
Node.js (Video/presentation about a project) The HYF team will decide if it is best to take a break and rejoin the next cohort or if this is the end of the road at HackYourFuture. Your explanation of the project is according to our expectations!
React (Individual project + individual interview) Based on previous results, the HYF team will decide if it is best to take a break and rejoin the next cohort or if this is the end of the road at HackYourFuture. Ready for the project!
Final Project (Tech interview based on the final project as well as any personal projects) Based on previous results, the HYF team will decide if it is best to do a fellowship or post graduation package exercise before applying to companies. Ready for your first job!

We know that there is a life outside of HYF and that life sometimes needs extra attention so whenever a decision is made we try to take these factors into consideration. That means that consequences listed in the table above are not set in stone as we try to find what is best for the trainee and case at hand. Overall we do promise a time-frame so if you have already had a break and fail a test it usually means we cannot continue.

1.5 Mentors

HackYourFuture is only possible because of our amazing team of mentors. Our mentors are medior and senior software developers working at small and big companies. Some of them are even graduates from our program! They usually have very busy jobs and they sacrifice their limited free time to help you to become a developer, so we ask you to respect and value their time by preparing yourself for the sessions!

That does not mean that you shouldn't ask questions. Make as much use of this valuable resource as you can! Our mentors are the happiest when the sessions are lively, interactive and the trainees get into discussions about code and programming concepts. Having these weekly chances to ask anything you are struggling with (or that you simply want to know more about) and the chance to have different mentors from different walks of life and with different approaches and expertise are some of the things that make our program (in our opinion) so much richer and unique than following a course just by yourself.

1.6 Q&A sessions

The content of the Q&A sessions is decided by you and your cohort. Based on your questions, the mentor will plan his session and explain the concepts that aren’t clear yet for the team. In order to make these sessions as useful as possible we have implemented the following guidelines:

  • Submit your question(s) in the thread on the message that will be posted in your cohort channel every friday. This is part of your assignment and you have to participate on this weekly, no exceptions. If you can’t think of a question, search online for a small exercise to do together during the Q&A session. It is not allowed to ask a question about the assignment. If the assignment is unclear, then that is a question for the education director.

Examples of both good and bad questions:

Good: "Do callbacks have to do with asynchronicity in our applications?"

Bad: "Can you explain again what a callback is?"

Before submitting your question, try to answer it yourself by researching online for the answer using google, MDN, StackOverflow, etc. If youve spent a good half hour - 1 hours researching and looking for the answer and still cannot find the result yourself...you've found yourself a great question to ask for the Q&A session. Again, if you can’t think of a question search online for a small exercise. And if you cant find an exercise, try to come up with one yourself. If you can't fix it (or simply find it very challenging), that's a good exercise to submit to your cohort.

  • Be on time, turn your camera on, and your microphone off. If you have a poor internet connection let Tjebbe know so we can find a solution together.
  • Participate actively: Answer if a mentors has a yes/no question. These sessions are a dialogue so it's a shared task to make it interactive, educational and fun.
  • Ask additional questions and speak up when something is not clear. IMPORTANT: Do not to wait with questions and hope things will get better with time. The speed of our program is very fast, so you have to take initiative and reach out to us for HELP. Again, good programmers ask for help. Those that do not ask for help, will hardly ever become good programmers.
  • Be ready to answer questions yourself. The mentor will be active in asking YOU to explain concepts. This is not to embarrass you but to help you practice the skills you will need when applying and/or working at a real company.

1.7 Three Strike Policy

At HackYourFuture we have a 3-strike policy. This means that you get 1 strike in the following situations:

  • You are not present in the lecture without proper communication and valid reason
  • You do not hand in the assignment in time without proper communication and valid reason
  • You do not implement feedback on your assignments without proper communication and valid reason
  • You do not submit a question in time for the Q&A session on Sunday
  • You do not take part on additional activities which were planned and communicated in advance without proper communication and valid reason

This automated 3-strike policy helps us keep track of what's happening with the 40-60 trainees we have in the program at all times. They have proven to be a good indication of trainee commitment, communication style and overall approach to the program. They represent an indication of when we need to have a conversation to make clear that changes in the way we work together need to happen. Once you have 3 strikes, we will re-evaluate your participation in HYF.

While this might sound 'rough' in a way, we suggest you think about it this way:

  • If you agree to participate in a meeting at work and do not show up, it won't be appreciated.
  • If you do not stick to deadlines, your company and colleagues might get in trouble, and that won't be appreciated.
  • If you do not communicate well with your colleagues, mentors, managers, bosses or team-leaders, that also won't be appreciated.

In short: Treat HackYourFuture as a job (and not a hobby) and you won't have to worry about the 3-strike policy. Last but not least, when you graduate from our program with no strikes (or at least less than 3) we have some indication of you being a reliable person and that your team (or company) can count on. Simple :)

1.8 Start your career

After graduation, it is time to find an internship. This internship almost always leads to a paid job. HackYourFuture will do its best to find suitable companies for you, as we have an extensive network of partner companies. However, finding work will depend also on your efforts:

  1. Is 'Your Personal Brand' ready? Is your CV, GitHub and LinkedIn profiles up to date and following the given guidelines? Have you asked for feedback from the Partnership Manager? Do you continue to update your CV with new projects and experiences? For more information on this, visit 'Your Personal Brand Repo'

  2. Are you ready for job interviews? During the course you will have career training sessions where we will discuss the basics of finding an internship, how to prepare for interviews, what companies expect from HackYourFuture graduates, etc. Additionaly, you will have many mockup interviews (aka practice interviews), both technical and social. These interviews will be conducted by the HYF core-team and by recruiters from our partner company Adyen. After each interview, you will receive feedback about your performance and things you can improve upon. This will make you less nervous and prepare you for real interviews with companies! To learn more about this, please visit the 'Interview Preparation' Repo.

  3. Revise what you've learned and never stop learning new things! One of the biggest risks to starting your career is to stop coding after graduation. This will significantly decrease your chances of finding an internship. We highly recommend you continue to work on projects even right after graduation. These projects will help you learn even further and you can also add them to your CV to show companies you never stop learning! A good way to go about this is by working on the Post Graduation Package. Also, be sure to revise all concepts studied throughout the course as this might come in handy when doing technical or social interviews.

  4. Remember the Education Fee! When a company hires one of our graduates, we ask for an education fee. This fee, helps us fund the next cohort of trainees. Once a company hires you, we ask them for 350 euros per month during the internship time, and 3000 euros minus the fees paid for the internship once thy hire you for a full-time job. This fee is never more than 3000 total and it does not come out of your pay. Think of this as a recruiting fee paid by the company + a way for having those companies supporting our mission of helping people like you start a career in tech. It might happen that you find a job by yourself at a company that is not partnering yet with HackYourFuture. If that is the case, we still ask you to Remember about the Education Fee and to connect with HYF's partnership manager as early as possible in the hiring process to best inform the company about that.

IMPORTANT: HackYourFuture's partnership manager will make a personalised plan to help you find an internship as soon as possible! If you are close to graduation and haven't heard from him/her yet, reach out to them on slack!

1.9 Paying it forward

Being a not-for-profit organisation, we currently receive most of our revenues from donations (70%) from large foundations like the ING Netherlands Fund, Stichting Doen and the Oranje Fonds. The rest of our budget is covered through an education fee we ask to companies that hire our graduates.

In the coming years we have to find a business model in which we are less reliant on foundations as their funding is temporary. We are currently exploring partnerships with companies for donations. We are also exploring an alumni donation scheme. Trainees who graduate and find a job can donate (voluntarily) a monthly amount to make sure the next generation of trainees is being trained. Please contact us if and when you want to know more about this.

Chapter 2: How to study programming (tips for non-programmers)

Through our years of experience guiding non-programmers into the world of coding we have gathered some common roadblocks/issues/misconceptions that we would like to inform you about so you don't run into the same thing:

2.1 Using ChatGPT

The best online help you can get these days is ChatGPT and we are sure you have already heard of it. We strongly suggest you to have it up all the time and ask questions to it as if it is your personal mentor. The following video by the great Andy Sterkowitz gives a good overview on how to use ChatGPT when you are learning to code.

There are two important things to remember when making use of ChatGPT:

  • Just like Andy says: don't just copy-paste whatever ChatGPT writes without understanding how the code works. This will not teach you anything. It is important to get stuck and figure a way out of it without a solution handed to you as at some point ChatGPT will not know the answer.
  • ChatGPT, just like the internet, is not always right! It can be a bit outdated with its information and as it is still heavily in development will sometimes make a wrong assumption. So when in doubt or when something doesn't work, it is time to ask a professional in your Q&A session!

2.2 Reading error messages

When programming you will deal with a lot of errors and being able to find how to solve them is the core of what a programmer do. As a beginner these error messages can seem daunting and we often see our trainees ignoring the information that would help them solve the problem. However, have a lot of information in them that can help you solve the actual error. Let's look at the following error message from some JavaScript code:

TypeError: res.status is not a function
    at Server.<anonymous> (C:\Users\Rob\hyf\Node.js\week1\homework\exercises\3-web-server\server.js:26:9)
    at Server.emit (events.js:315:20)
    at parserOnIncoming (_http_server.js:874:12)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:126:17)

There is a lot of information in there to try to help you identify what is going on, but much of it is probably not needed to solve this issue. Let's disect this information:

TypeError: res.status is not a function

The first line is generally a good place to start. This one is short, but sometimes these can get quite large. The first part tells you the type of error (in this case a TypeError) which doesn't help us much here. After that it is the message a developer wants to tell you, in this case res.status is not a function. This is the part the developer fills in when you throw an error from your code. If the developer was nice this should give you all the information you need. In this case there is some code somewhere that tries to call the function status on a variable called res that does not seem to be a function.

The rest of the error message is what we call the call stack:

  at Server.<anonymous> (C:\Users\Rob\hyf\Node.js\week1\homework\exercises\3-web-server\server.js:26:9)
  at Server.emit (events.js:315:20)
  at parserOnIncoming (_http_server.js:874:12)
  at HTTPParser.parserOnHeadersComplete (_http_common.js:126:17)

This should tell you where in the code it broke. We will go into more detail about this in the curriculum, but the rule here is to look for a filename / directory that you recognise. In this case the first line at Server.<anonymous> (C:\Users\Rob\hyf\Node.js\week1\homework\exercises\3-web-server\server.js:26:9) is a file on my computer that I recognize. The numbers at the end 26:9 tells you at what line (26) and character in that line (9) your code broke. So now you know where to start looking for a problem!

2.3 Finding solutions online

If you can't figure out the error yourself and ChatGPT is not providing you with something useful then it is time to start searching. When it comes to programming, the internet is filled with solutions that may or may not work. Some information will be out of date as well. This means that it may take multiple attempts to find the solution you need. When looking for a problem we have a couple of tips:

  • Include the language you are programming in / library where the error occurred
  • Copy paste the error description (res.status is not a function) into your search engine
  • If there are too many results, add a time filter in your search engine
  • After a while you will find out which sites provide good information. For example:
    • MDN. This is an up to date and clear resource of information!
    • StackOverflow. The place where many questions are asked and answered.

2.4 Asking for help when stuck

Let's say even the internet cannot help you, it is then time to ask your cohort for help. There is a right and wrong way to ask for help though. We regularly see trainees send a message that looks something like this:

Hi team, I get an error when running my server, anyone else ran into this problem also?

This is not very helpful and will probably not get a lot of response. The reason is that there is no information which means any other trainees/mentors/coaches will not be able to know if the error is indeed the same. The best thing to do is to take a screenshot of or copy the error message and post it there. That way your colleagues will already know if it is something they recognize. For example:

Hi team, I get the following error when running my server for Node week 3 exercise 3:

TypeError: res.status is not a function
    at Server.<anonymous> (C:\Users\Rob\hyf\Node.js\week1\homework\exercises\3-web-server\server.js:26:9)
    at Server.emit (events.js:315:20)
    at parserOnIncoming (_http_server.js:874:12)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:126:17)

2.5 Code as much as possible

We provide a lot of reading materials/videos in the curriculum, but you will learn the most when you are coding yourself. At the start of the week we introduce you to new concepts, this will give you new ideas and tools to work with. But no video will be able to explain something in such a short time for you to get it, that will only come through practice.

So treat the reading materials as a way of introducing you to new concepts, then apply those concepts to your code as much as possible. You can even copy the code the video uses and play around with it. This will make you understand the concepts a lot better than simply watching others do it.

2.5.1 Coding tutorials

A very common type of video you find online about programming are coding tutorials. This is where someone spends quite a bit of time creating a full website or web application in a certain stack. These are very valuable and we do encourage you to try those out, but we also want to warn you of a couple of pitfalls that come when focusing on following these coding tutorials.

When coding along and getting to the end product it is easy to convince yourself that you can do the same thing easily. After all, it works and whenever the code got explained it made a lot of sense. But this is not true, what you have done is copied over code from someone else that already has taken away all of the thinking and debugging away from you. This doesn't mean that coding tutorials are useless, they give you a great way to see the big picture plus provides a nice codebase for experimenting. Which brings us to this article which explains this phenomenon and tells you how to use coding tutorials to your advantage. The most important things:

  • Try to solve things yourself before watching the solution! For example, when the video says that they will now 'add a class to center the image on the page', pause the video and try to do it yourself first. Once you have either given up or got a solution, unpause the video and see how the tutorial does it.
  • Once everything is done, break the project! Change lines of code and see what the effect is, this will give you an idea of why certain choices were made and allow you to start recognising errors faster.

Remember, your time is valuable so make good use of it!

2.6 Minimize distractions

The goal whilst studying should be to reach a state of ‘flow’. Flow can be described as the complete immersion in an activity. By doing so, you lose your sense of space and time. There is quite some research about ‘flow’. This research shows that not only your learning curve increases significantly, also the level of joy increases. In other words, if you are fully concentrated whilst programming you feel way more satisfied as a result.

To reach this level of optimal concentration and create a state of flow, distractions should be shut out as much as possible. The two most common enemies are described below.

Challenge number 1: Social Media & Phone
Social media is incredibly bad for your focus and therefore it decreases your ability to learn complex concepts. In order to understand programming concepts your brain needs full focus. Every time it is interrupted by a phone or a message online, your brain has to switch its attention. To go back to your code after that will cost a lot of energy. In fact, studies have shown that just having a phone in the same room, reduces your ability to study significantly.

We highly recommend you: when you are studying, put your phone away and use your study time for studying only. Another app that can help you out: Selfcontrol. A bit of a contradiction, but it blocks the websites that distract you for the period that you want to be focussed.

Challenge number 2: Family, friends, kids, adults, etc
Many of us are not living by ourselves. You might have children, or family members asking for attention. The challenge here is to try and create a quiet space, where you will not be interrupted. Of course, this is not always possible if you are a parent. But perhaps you can ask your partner or a friend to keep an eye on your children at least for a few hours a day, while you go to a local library, or study in a quiet room at a friend’s house. Finding time to concentrate and to reach a study flow is crucial to your development as a professional. Same happens with being a good friend, a good husband/wife or father/mother. The best way to reach a balance there is to plan your time properly.

If you're struggling to find that 'flow', please contact your supervisor for some extra help! You can also look for resources online or ask colleagues how they do it. Having a well structured week is a challenge to most, but it really helps!

2.7 Life happens

HackYourFuture is VERY demanding. You will be learning years of content in just a fraction of that time. You will need to devote a huge part of your year to the curriculum in a (usually) less than ideal learning environment. Sometimes life will 'get in the way' of this and when that happens remember: There is no shame in admitting that you need help!

We are here to support you in any way we can. Please let your supervisor know as soon as things get too challenging for you or something happens that will mean you won't be able to put in the time and/or effort that is required for you to keep up. There are many ways we can help you out, either by providing some extra support from a one-on-one mentor or from a life coach or by giving you a break. WE WANT YOU TO SUCCEED and letting us know what is going on beforehand will always work out better for all of us. Do not forget that we are in this together!

Final thoughts

As of May 2023, over 300 trainees graduated from our program. Over 85% are working in the IT sector, within three months after graduation. In other words, HackYourFuture works.

However, throughout your HYF course and your career as a programmer, you will control your own fate.

40 hours of study is just the minimum we suggest. The more you know and the harder you work, the faster you will find yourself in a job you love. The more you participate and become part of the HYF community, the more people are going to be willing to help you out. The more friends you make.

We want to provide you with the knowledge, tools and support you need to build a career as a programmer. To support yourself and your loved ones.

We are glad to have you on board!

The HYF Team