Module 6 Post Work
Last updated
Last updated
If you can't explain it to a six year old, you don't understand it yourself. ~Albert Einstein
At this point you would have already created one solo project during Module 5 and a few other projects in the other modules. Now is the time to seriously keep coding and embark on your second project. Employers want to see that you can "do the thing." They want to know that you can start with nothing and build your own moderately complex application. Now that you're out of the program, this is the time to experiment with technologies you did not get to look into during Mod 5. These may include:
Mongo
Node / Express
WebSockets
D3 / Chart.js
Oauth (Log in with Facebook etc)
Google Maps etc
React Native
Draggable
Draft.js
P5.js
The goal here is to begin creating a new project that builds on the skills you have already learned and will help you to get even further. You should be working on this daily (or every other day). Draw/sketch out what this app looks like on paper and execute it in code. Can't think of an idea? Make a weather app. Don't like that idea? Build a to-do list. Think of technologies you've always wanted to try and build around those. As you keep coding ideas will come to you – don't use the lack of original ideas as a reason to not code. Once the idea comes, go wild.
After you have completed a project, it is key that you deploy your project so that you can send it to employers. A project should not solely live on your github page. However, this does not mean deploying a half finished product. Ensure that you have fully tested your site before sending to anyone. This does not mean just testing your functionality but also testing for edge cases. For example what what happened if you tried to search in an empty search bar...would your app break?
Module 5 is probably a blur by now but there's still a need for you to start cleaning up your project. When we say clean up your project we mean several things:
Refactor your code to reflect best practices. This means that no new functionality should be added while finding a balance between elegance and efficiency. You will sometimes find yourself obsessing over efficiency/elegance and may not sure how to move forward. This is a good time to ask a friend/instructor to take a look.
Write some tests Writing tests allows you to add some more polish to your applications. It says to an employer that you have considered the long-term sustainability of your code.
Clean up your github page When someone goes to your github page for your project they shouldn't be seeing the default Rails/Create React App project guidelines. You should include the following:
A description
Screenshots and/or demo
Technologies/Frameworks used
How to clone and build
Link to the deployed version
Semantic and Bootstrap are great tools for fast prototyping. However, you want to be able to demonstrate your own ability to write CSS to craft a well-developed application. To truly call yourself a fullstack developer you need to not only have backend chops but also some skill at writing your own CSS. This doesn't mean that you must now become a designer yourself but it does mean you should get some practice looking at other designs and improving your own.
While you spend your time building your next project, allocate some time to learning about data structures and sorting algorithms (more computer science stuff) as they become crucial when going on certain types of interviews. If you have not had a chance to look at the CS curriculum on Learn, do so now. It will help you start your journey to learning some more CS topics. Actively think about how you might implement some of your learning into your project. Don't let CS be only theoretical, try to make sense of it and make it functional.
This YouTube channel explains CS concepts incredibly well: https://www.youtube.com/user/mycodeschool
Watch these videos and then implement what he's referring to in the video in your own code. Use repl.it if you don't want to set up your own environment.
Create an account on hackerank.com or codewars.com or any other site you prefer.
Begin with the Data Structures section. It's important to stay on top of this. Solve at least one problem a day. Also, in your progression through this material feel free at times to go back and re-implement a problem you solved from a few days prior or a week earlier to stay on top of the material. Don't rush through these problems. If any of these problems brings up a core concept, make an attempt to implement it on a white board or in a Google Doc, challenging yourself to solve it without using auto-complete from the compiler.
When a problem is asked, open repl.it and make an attempt at solving it. These are questions that can and will very well be asked of you on interviews that involve algorithms.
It is often also helpful to start solving these problems on a piece of paper. It may be hard to remember the syntax but over time it will become second nature. Allow your mind to be the compiler as you work your way through a problem.
The journey of a programmer is one of constant learning. That being said, you need to stay up to date on new technologies/styles/paradigms etc. that may become popular. This requires you to be an active member of the community by reading blogs, following notable people on twitter and reading books and of course more coding
Have fun. Go get it!
Use the below schedule as a template for your weeks following graduation. It does not have to be exactly like the template below but note some key details
Working on a personal project
Solving algorithm problems 3 times a week
Learning new skills
Blogging
Your week should encompass all of the details in some form in addition to your career services commitments
Half of your day is on career stuff, setting up appointments, reassessing your schedule, meetups, responding to emails
The remainder of the day should be focused on getting back into your project. The first couple of steps here is looking back at your trello board and figuring out what your week sprint is going to look like. This is a good time to assess the direction of your project and also figure out your feature for that day.
Monday is also a good day to sneak in an hour with HackerRank. This gets your brain back into the zone from maybe a lazy Sunday
You should have planned out your project sprint so you should know exactly what features you will be tackling today.
Of course make time to respond to any emails that came in late Monday but Tues should be project focused
Take some time on Tuesday to start thinking about your blog for this week. Make some bullet points of an outline. Do some google searching. Start organizing your thoughts
Make time to do at least 2 problems on Hacker Rank. Remember consistency is key to getting good at these problems
You should be focusing on continuing with your project
Reply to employer emails
Use Thursday to write your blog. Unlike during the program, a blog shouldn't take a week to write especially since you have already done your outline. Sit down for a few hours and begin writing.
Thursday should also be a day for finishing off your sprint for the week. At this point, if you haven't merged into your master branch you should consider doing so. Note only merge a fully developed feature into master.
By Friday you should have finished your feature. Your morning can consist of adding any finishing touches. Use Friday to refactor your code and clean it up. You should be following the "Make it Work then Make it Perfect" Mantra. By doing this you will introduce fewer bugs into your code and will have to spend less time cleaning it up later before you send it to an employer.
Friday is a good day to focus on learning new things. Give yourself a day to reassess where you're at and learn new things you can integrate into your project. Spend some time on a course you have started. Friday is a great day to find new things to learn that you will later be able to integrate into your project.
Find an hour to work on Hacker Rank problems. Remember consistency is key
On the weekends you don't need to have the same flow but don't completely ignore code for both days. Right now it is crucial for you to be developing your coding muscle memory so even if you do not work on your project, you should be tackling a HackerRank problem or focusing on the course you started.
These lists are not meant to be exhaustive but to give you some context of where to start if you can't find books to start reading