- Introduction
- Chapter 1: Course Overview
- Chapter 2: How to study programming (tips for non-programmers)
- Chapter 3: Study Strategies
- Chapter 4: How to ask Questions
- Chapter 5: Core Values
- Final thoughts
Dear new student of HackYourFuture, Welcome to our program! On average, we receive 100-200 applications for every new class. Therefore, to be accepted into HackYourFuture is a big accomplishment. You are now a member of a large community. Over a 100 students have graduated from HackYourFuture and more than 90% find a job as a professional web developer. However, our course will be challenging. For the next 7 months there will be moments in which you might want to give up. It is important to remember that you are not the first to go through this. Many of our students, who are now in professional jobs, have at some point thought about quitting our course. Based on their experiences we compiled this guide to share the lessons learned: How do you make sure to be successful in HackYourFuture? This guide consists of five chapters. In the first chapter, we provide a short summary of our program. This will answer the question: What will I learn at HackYourFuture? The second chapter discusses the six steps of problem solving, the core skill of what programming is really all about. Chapter three talks about how to study programming most effectively. The fourth chapter details how you can become better at asking questions, which is vital to become a good programmer. Finally, chapter five lays out HackYourFuture’s core values. 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
During the next half year, you will practice with a variety of technologies and ways of thinking. This will build a solid foundation for you to become a junior 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
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.
The 7 months are divided into different modules, each building on the one before. Here’s the overview:
HTML/CSS This is the foundation. Every website you know ultimately consists of these two technologies. You will learn how to create simple web pages (HTML) and how to make them look nice (CSS).
Command Line This is the direct communication channel between you, the developer, and the computer. While most people use computers using nice icons and beautiful displays, here you will learn how to make things happen by directly executing commands. Version control with GIT. Writing code is complex, especially if you’re working in multiple files. This is where version control comes in: how to save your workspace at any moment, in case you or someone from your team messes things up. You will learn how to always keep track of the code changes you’re making and undo your work whenever needed.
JavaScript The language of the web. You will learn the basics of programming, how to add interactivity to your web pages and how to make use of other services (GitHub, Google, etc.)
Node.js Software that allows us to use JavaScript outside the browser to create all kinds of applications. You will learn the basics of Node.js in order to understand and build web servers, which will allow us to create complex and dynamic web applications.
MySQL The world’s most popular open-source database. Every application needs a secure place to store sensitive data, so for that we use a database. You will learn the query language SQL in order to store and retrieve your data from your own database.
React.js Currently the most popular way to create fast and dynamic user interfaces. In this module you will learn how to build a more modern and dynamic frontend that changes depending on what the user does.
Project This is where all your knowledge and experience are put to the test. The goal is to build a fully functioning full-stack application while working in a team along Agile principles.
If you do well enough during the Project and meet the deadlines, you will graduate. You will receive a diploma and you’ll become part of the Alumni Network.
However, there is no time to rest yet because the next challenge will be to find an internship (see also section 1.7). After you graduate it might take some time before you actually find an opportunity. That is why we have developed the Post-Graduation Package. The PGP consists of additional technical projects that you will build to improve your skills and increase your chances of finding an internship.
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 this week |
Friday-Saturday | Work on the homework assignment + Submit question for the Q&A session |
Sunday | Q&A Session 12-3pm (usually ends earlier) |
Monday-Tuesday | Finish homework (deadline Tuesday 23:59) + Implement feedback on previous homework |
The video lectures will be made available to you through Slack (You can also find them on our YouTube channel). In these lectures, one of our teachers explains the core concepts of this week and provides you examples and exercises.
You are also asked to do the homework assignments and readings (see next section). On Tuesday we ask you to submit your homework and on Saturday at least one question before the Question and Answer (Q&A) session on Sunday. The Q&A session is basically an online meeting where the teacher will answer your questions, so please come prepared! He/She might also ask you questions. Submitting homework 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 face-to-face classes on Sunday.
As mentioned, our complete curriculum can be found on Github. The modules are ordered sequentially.
The homework 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 Homework.
After the first couple of weeks, Github will also be where you will publish your homework. In the beginning you might struggle to use Github. 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. You will notice that after a few weeks, finding the right homework assignments and reading, as well as publishing your homework on Github, will become automatic.
You are expected to always come prepared to the class on Sunday. Every week you will have homework assignments and we expect you to finish them before Wednesday. The sooner you hand them in, the more time your teacher has to check your homework and give you feedback. Not handing in homework without proper communication will not be tolerated (see also our values in chapter 5 and our 3 strike policy).
You are not allowed to copy homework from others. Please take yourself and HYF seriously. On some occasions copying code is necessary and allowed. In such a case, the following criteria apply:
- A reference is given (in a comment)
- It must be clear which code is copied.
- The functionality of the code is explained in the comment.
If we find out you copy code without taking the criteria above in mind, this will have consequences. We usually will ask you to do a technical interview. If you fail the interview, you have to leave our course.
After most modules we will ask you to take a test. If there are any weaknesses in your understanding of the concepts we have taught you, the test will expose them. This is a good thing: you will get an opportunity to go over them again and master them. Make use of it, because in a company you will not always have such a luxury. Receiving a low score on one of the tests does not immediately lead to removal from our program but we will re-evaluate the best way forward.
HackYourFuture is only possible because of our amazing team of teachers. See for an overview here. Our teachers are medior and senior software developers working at small and big companies. They usually have very busy jobs and they sacrifice their limited free time to help you to become a developer. Some of them are graduates from our program! We ask you to respect and value their time by preparing yourself for class and ask plenty of questions!
The content of the Q&A sessions is decided by you. Based on your questions the mentor will explain the concepts that aren’t clear yet. In order to make the sessions as useful as possible we have implemented the following rules:
- Submit your question(s) in the thread on the message that will be posted in your class channel. This is part of the homework. If you can’t think of a question, search online for a small exercise to do together during the Q&A session. Message Tjebbe when you won’t be able to submit a question/exercise before the deadline. 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?"
- Be on time, turn your camera on, and your microphone off. If you have a poor internet connection let Federico know so we can find a solution together.
- Use the chat function to let the teacher know if you have questions. Wait for your turn and activate your microphone to explain your question.
- Be ready to answer questions yourself. The teacher 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 working at a real company.
Note: Because of the Corona crisis, we are currently conducting all of our classes online. We will explain this in more detail during the introduction day. As a result some of the information in section 1.5 and 1.6 is more relevant for when we return to face-to-face classes.
For our main teaching day on Sunday, we make use of the office of Backbase, one of HackYourFuture’s most important partners. The office is located at Sarphatistraat 370. We are incredibly lucky as we can use this location for free.
However there are few rules and regulations that are very important to take into consideration. Failure to comply with them could lead to your dismissal from the HYF program.
- Door policy The doors downstairs (main entrance), should be closed at all times. We will make sure to have someone open the door at the beginning of the day (usually from 11:30 until 12 when class starts). If you arrive later, please ask for someone to open door using the #door channel in Slack.
Slack is a communication tool we use within HackYourFuture. After the introduction day we will send you an invitation link to download the software.
If you want to go outside during the break for some fresh air or to smoke, please use the door at the back of the building. You are only allowed to smoke in the designated areas. Also this door should be closed at all times! If not, the private security company will be automatically alerted and we have a lot of explaining to do. u 2. Chairs and tables If you are borrowing chairs from outside the meeting rooms during the day, you should put them exactly where taken from. Some Backbase-employees have the height of their chairs customised and find it very difficult to find them back if they were returned somewhere else. If you are using any desk space, please make sure that any chargers or monitors used/removed are put back as they were before. Please do not use any chargers that do not belong to you unless given permission by staff members.
-
Cleaning Please clean up after yourself. After lunch you should clean the breadcrumbs and coffee stains. Also, clean up the floor in the bathroom. If you need to wash yourself before and/or after praying, bring a towel.
-
Windows During class windows may be opened. However, please check after class if windows have been closed.
We often go for drinks after class. We believe that HackYourFuture is not just about learning but also about building connections, friendships and socializing. Feel free to join, the first round is on us :) We usually go for drinks at Crea or Kriterion, two nearby cafes. Note: Do make sure to take care of your belongings (backpack and coat). In the past we have had one case of theft.
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 completely on your own efforts.
Finding an internship consists of the following steps:
-
CV and LinkedIn Support During the project-phase we will contact you and work together to make sure you have a professional CV and LinkedIn profile ready in English.
-
Career Training (1 session) Right after graduation, we have a one-day career training in which we discuss the basics of finding an internship, how to prepare for interviews, salary negotiations etc.
-
Practice Interview (1 session) Two interviewers will test your social and technical skills (60-90 minutes). After this, you receive feedback about your performance. This will make you less nervous and prepare you for real interviews with companies.
-
Improve your technical skills One of the biggest risks is to stop coding after graduation. This will significantly decrease your chances of finding an internship. Therefore, we have projects that you can build, with support from teachers, to develop your skills. You can also add these projects to your CV!
-
Finding internship possibilities We will share a Google Doc list with you. We will train you to find leads for companies that are hiring developers. You will share these contacts with us and we will contact these companies (our experience has taught us this works better than if you contact companies yourself). In addition, we also have a network of partners of our own, which we will use to introduce you to companies.
-
Education Fee It is in our best interest to find you an internship since we ask companies for a small compensation (education fee). We need this education fee to train the next class of students since we are a not-for-profit organization.
IMPORTANT: Finding an internship opportunity is a two-way street. While we reach out to many different companies, you need to contribute. You can control your chances of getting an internship by working on your technical and communication skills, and provide us with leads to companies.
If you do not contribute, and remain unemployed, this is your responsibility. If the municipality or your contact person contacts us about your progress we will be straightforward and transparent about your performance.
Many people think programming is just about the code, 0’s and 1’s, about frameworks, technical stuff, or complicated words that just confuse us.
However, to be a good programmer, the most important thing is to be good at problem solving. We program computers because we have:
- A problem/need
- We want to use the computer to help us solve that problem / need
This chapter discusses the six steps of problem solving. This gives you a step-by-step approach on how to analyze and write code.
The key to problem solving, is to really understand the problem. Write down the problem exactly or explain the problem to someone else, until you clearly understand what the problem is you are trying to solve. Many times, software developers start fixing problems without really knowing what the problem is (or what the client wants).
Big problems (or challenges) should be divided into smaller problems, so that the problems become easier to solve. What seemed like a big monster problem, now just is a lot of small monsters on top of each other. For instance, if you want to loop through an array and select certain data from it, these are already two steps (making a loop and selecting data). The more you are able to divide big problems into small ones, the better.
Now it is time to think about the techniques you know that could possibly help you to solve this problem (e.g. loops, if statements, filter, map etc.). If you do not find an appropriate technique you will have to find it. In both cases Google will probably be your best friend. Remember, most developers spend hours per day on Google trying to find solutions to their problems!
Now try out some of the techniques you have found. Often it works well to first try out the technique on an easy example you have made yourself, before you try to solve the problem. Experiment with some examples so that you really understand what the technique is capable of. After that, put it all together and see if your code gives you the expected results.
Often your code does not do what you want it to do. There is only one reason why this is the case: Your logic is not sound.
In the end the computer only executes on instructions that are written in a way it understands. Generally, there can be 2 reasons for your code not doing what you want:
- The computer throws an error.
- Your code returns an incorrect value that doesn’t solve your problem
Whenever this happens, you can do the following:
- In case 1, make sure that you carefully read the error message, as it often gives you a good hint where the problem lies within your code. This should be the first thing to look for when something went wrong.
- Check for syntax errors. Use JsLint for this (an extension for VSCode that helps you find syntax errors). Most of your mistakes will be simple spelling/syntax mistakes.
- Use the debugger to understand what steps the computer goes through when interpreting your code, and find where it goes wrong. Try to explain each part of the code to yourself of what it does exactly.
- Formulate your problem in clear terms to google and search for solutions
- Ask people in your class/teacher or take a break and look back at your problem with fresh eyes.
After all this, it is time to reflect on what you have done. Are you happy about how you solved the problem? What went well and what did not?
Most people tend to skip this step. “Why do I need to do this? I have already solved the problem!”. However, you will notice that if you do take some time to reflect on your code and problem-solving approach, you will improve your analytical mindset and become better at memorizing some parts of your code.
Reflection also includes refactoring. Refactoring is the process of rewriting your existing solution into better looking, better functional, readable code. Often times you will find that you have solved a problem, but that doesn’t necessarily mean that you have solved it in the best possible way, or that you completely understand all the concepts you have used.
In summary, reflection includes the following steps:
- how could I rewrite this code for simplicity and better readability (refactoring)
- what concepts in your code you don’t understand yet 100% (even though it works), and study them.
- what you can learn from other solutions (by looking at other solutions of the same problem)?
- what would you do differently next time?
Let’s use an example to explain these 6 steps in more detail. Note that the example below is a bit advanced if you are just starting our course.
Imagine a fruit vendor on the market. The fruit vendor has a couple of different fruits he is selling. However, he also has some rotten fruits. His fruits are represented through an array of strings: ["apple","rottenBanana","mango"].
The fruit vendor has hired you to write a program that takes out the rotten fruit and only tells you which fruits are not rotten.
In our example understanding and defining the problem seems pretty straightforward. Indeed, we need to write a program that takes out the rotten fruit and returns the fruits that are not rotten.
However, let’s try to make this a bit more specific. We have to write a program that first takes an array of strings containing fruit names as input. It then filters out the strings that do not contain the word “rotten” and gives them as output.
We now know what we want to do in a general sense, but can we divide our problems in a few different problems? Yes, we can:
- Declare a variable named fruits with the fruits mentioned in the example
- Define an empty function named TakeOutRottenFruit
- Inside the empty function write instructions that take out the strings containing the word “rotten”.
After going over our notes and the curriculum we discover that the filter() function could be used to filter out elements in an array.
However, the documentation on Mozilla Development Network (MDN) also tells us that it will return “a new array with all elements that pass the test implemented by the provided function”. That means we still have to instruct our computer to select the string(s) which contain the word ‘rotten’.
After some more googling, we find out that includes() is a function that allows us to check the content of a string. Let us try to combine the two!
This leads us to write the following code
const fruits = ["apple", "rottenBanana", "mango"]
function takeOutRottenFruit(arrayOfFruits) {
const goodFruitsArray = arrayOfFruits.filter(fruit => fruit.include("rotten"));
return goodFruitsArray;
}
takeOutRottenFruit(fruits)
When we write the code under step 4 in the Google Chrome Console we get the following error: Uncaught TypeError fruit.include is not a function
Probably we have made a small typo. Let’s google the include function. When we do, we notice that we should use fruit.includes (with an -s at the end).
When we run the following code, it does not give any errors anymore.
However, I do notice that only rottenBanana is selected and displayed.
Hmmm, what to do? Let’s go back to the basics. I remember that in my JavaScript 1 Module I learned something about operators (here ). Indeed, I find that you can use the ! operator to return what is not true (everything that does not contain the word rotten). Let me try to add the ! operator.
const fruits = ["apple", "rottenBanana", "mango"]
function takeOutRottenFruit(arrayOfFruits) {
const goodFruitsArray = arrayOfFruits.filter(fruit => !fruit.includes("rotten"));
return goodFruitsArray;
}
takeOutRottenFruit(fruits)
Yay! It seems to work! Can you think of a different / better solution?
Most people study inefficiently. This is mostly because they never really learned how to study the right way, even after years of university in some cases! In this chapter we will show you some of the most important strategies to learn in a way that is much more time efficient.
As the HackYourFuture course is very demanding, this is critical to get through the program successfully. In fact, many successful experts that require focus and concentration for their craft (scientists, programmers, writers, artists, craftsmen, etc.) share one thing in common: they are very serious about how they learn. This chapter will give you a short introduction into how you can study most effectively.
The first part of studying should be to make a study plan.
Your homework will consist of various components. You will need to:
- read/watch a certain amount of information (videos/articles),
- apply this knowledge in the homework exercises.
- prepare questions for the Q&A on Sunday
Every week consists of five main activities: (1.) Read the reading material. (2.) Watch the online lectures. (2.) Make the homework for the current week. (3.) Participate in the Q&A session. (4.) Implement the feedback on your previous homework.
Before you start doing anything, it’s good to plan your week ahead. Divide the large amounts of tasks into small pieces, and think about how much time you expect to spend on each task by having a quick look at it.
We have a certain number of articles and videos that we share as part of the curriculum. It is important to read and watch them effectively. Again, try to follow the examples and code them yourself. Also, you are free to look for your own reading material and videos. There is a lot of good material on the internet, which you can make use of. Also, if you find a resource that you think is better than what we offer in the curriculum, please let us know (see textbox below!).
How to Improve the Curriculum!
- Go to the Github page you want to add a suggestion to
- Click on Issues.
- Click 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.
- We will review it and if we find it useful, add it to the curriculum.
The homework and reading material combined take at least 30 hours, however this does not account for getting stuck with exercises or doing more in-depth research and practice to really master the concepts. Therefore, you probably want to add another 5-10 hours per week at least.
Now that you know how much time you have available and which are the activities you need to study per day, it’s time to make a weekly schedule. The key here is not to wait until Saturday, but to start Wednesday morning already. Learning programming concepts takes time, and if you try to do everything at the end of the week, your brain has very little time to process these concepts. Per day you schedule a number of small tasks, and once you are finished you can feel good about finishing the tasks of the day.
Note that planning is an art by itself! If you want to learn how to make better weekly and daily schedules, we recommend you to read the following two posts by Cal Newport (1 and 2).
As explained in the previous section, reading about code, or listening to your teacher about code, is not the same as actually coding! It is incredibly important that you try out the concepts that you have learned, and that you try to apply it in multiple ways in order to become comfortable with it. There is no way around this.
We recommend that when you study something, directly try it out in your code editor by making a simple coding example and see how it works in practice. Only this way you will truly understand it well, and gain the ability to turn ideas into code.
One more tip: Write code with pen and paper. Try to write down the basic concepts including some simple examples. Yes, this can also be done on the computer, however research shows that writing things down with good old-fashioned pen and paper provides cognitive benefits that you cannot achieve when typing on your keyboard. By the way, some companies will ask you to do the same during their interview process – good practice indeed!
The basic concepts presented in the earlier modules are crucial to become a good programmer. Many students in JS2 and JS3 still struggle with arrays, string, objects, array of objects, properties and other basic concepts which are discussed in JavaScript. Many students in the React-module still struggle with callback functions and closures (discussed in JS2). In order to solve more complicated coding challenges, you need to know these concepts!
If you really want to master the basic concepts, the best way is to do more exercises with them. You can find a lot on the internet, but you can also easily create your own basic exercises (like the rotten fruit example in chapter 1). For instance, can you come up with some examples on how to use a basic function?
Sleep is incredibly important for your brain’s memory capability. If you study a lot, but don’t sleep enough, part of all the hours you put in are useless. On average the recommended time of sleep is ~8 hours. If you go much below this, it will most likely decrease your performance as a student.
We recommend that you do not look at any screen the hour before you go to bed, as this improves your overall sleep quality. Your brain thinks that the light of your screen is natural light, and this will make you stay awake.
If you're still in fornt of a screen in the evening, you can use this app to make it less harmfull (MacOS only). Try to take 10-15 minutes breaks in between studying sessions of 90 minutes, as this re-energizes you and improves your focus. During these breaks, some form of physical exercise is highly recommended. Take a walk outside, stretch, dance...get moving!
More generally, we recommend you eat healthy and do sports. There is a large body of evidence (for instance this and this) that shows exercise helps memory and thinking through both direct and indirect means. Directly through a reduction of insulin resistance, inflammation, and an increase of chemicals in the brain that affect the health of brain cells, the growth of blood vessels in the brain, as well as the survival of new brain cells. Indirectly, exercise improves mood and sleep, and reduces stress and anxiety.
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 contradictio in terminis, but it blocks the websites that distract you for the period that you want be focussed.
Challenge number 2: Children and family 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.
How to become a pro at learning
Obviously, this chapter only provides you with a very basic introduction.
If you are interested in learning more about how to learn effectively we recommend you to read more about deliberate learning and deep work. Studying effectively – although NOT easy- is a superpower you can use for the rest of your life!!!
An excellent read about the value of working without distractions (and how to achieve it) is the book Deep Work by Cal Newport here.
Many students find it hard to ask questions during the classes and online (through Slack or otherwise). However, to become a good programmer means you dare to ask questions, lots of questions. In fact, some companies even have a rule on this: If you are stuck, you have one hour to solve the problem. If you cannot, you have to ask for help.
In HackYourFuture there are several ways to ask for help:
- Ask in Slack (preferably in your classroom channel)
- Approach a teacher during breaks or through Slack
- Ask HYF staff to connect you to a graduate or teacher for individual sessions
Nevertheless, we often notice students not asking for help is the prime reason for them dropping out of our program.
Let’s take a classic example we often encounter in HackYourFuture:
During class the teacher explains a concept. At some point the students do not understand what the teacher is trying to explain. One or two students ask questions. However, these students already understand most of the concepts and are therefore comfortable to ask questions to improve their knowledge. Yet, most classmates remain silent and do not ask any questions, even though they can hardly keep up with the teacher. What are the reasons? Below we discuss 3 reasons and some suggestions on how to ask questions anyway.
Reason 1: You do not want to take the risk of looking stupid in front of the class.
Solution:
Fun story: A woman, recounting a story about an old man who used to answer all her "stupid questions", explained: "If you ask a question it makes you look stupid for 5 minutes – but if you don't ask – you stay stupid for fifty years, so always ask questions in your life".
If reason 1 is your reason for not asking, we say: you are wasting your own time. Instead of asking the teacher, you are telling yourself you will understand it by yourself later on. What often happens is that you will only understand 50% of it when you look it up yourself, and this will cost you much more time than just asking the teacher and getting a clear answer directly. Also, in your job you will need to be capable of asking questions in front of people: start practicing now!
Reason 2: You know you are not completely understanding the concept/explanation but do not know how to transform this into a useful question.
Solution There are several ways to ask a question when you are not sure how to frame it:
Recap what you understood, and share where you lost the teacher Example: “I Understood how it worked until this point, but after that you lost me. Can you explain part X again?”
How does X work: Example: “How does part x work? I still don’t really understand it.”
Why do we do X? Example: “Why do you use X to solve problem Y?”
Check your own understanding Example: “Do I understand correctly that X does Y and Z?”
Ask for an example: Example: “Can you give an example of how X works?”
Reason 3: You lack a fundamental understanding of a basic concept, which prevents you from understanding the new information.
Solution This situation applies when you have not mastered the underlying basic concepts yet and therefore cannot understand the explanation of the teacher (or reading materials) when discussing more advanced concepts.
For instance, the teacher is explaining callback functions with a practical example. However, you do not grasp his/her explanation since you are still not completely comfortable with basic functions, which are explained and used in the JS1/JS2 modules.
If this happens, it is probably a good idea to take some time apart with the teacher, a graduate student or someone else who is good at explaining the basics. We can always provide you with some help, for instance by organizing individual video calls or appointments with former students or teachers. Moreover, it is important to revisit the basic concepts that you struggle and practice, practice, practice until you dream of Javascript functions. After that, you can try to revisit the more advanced concepts (for instance by re-watching the lecture on YouTube).
If you feel reason 3 applies to you, it is crucial not to wait and hope things get better with time. As the speed of our curriculum is very high, 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 never become good programmers.
This RePo lays out our core values. These core values are leading for all of us involved in HackYourFuture: staff, alumni, students and teachers. They are leading in how we learn and teach and interact with each other. Please read them carefully.
We believe HackYourFuture is more than an education program. HackYourFuture is a community of creative individuals who can do great things now, and in the future. Yet this is only possible if students, teachers and staff all feel they are part of something bigger than a mere training program. That's why we send you a Code of Conduct that you've to sign before starting the program.
As of March 2020, over 150 students graduated from our program. Over 80% 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.
30-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.
This is not a race against the curriculum or a race against other students. This is a race against yourself, so be sure to come up first every time, every day.
We are glad to have you on board!
The HYF Team