Practical things I wish I'd known before and during my Coding Bootcamp

Practical things I wish I'd known before and during my Coding Bootcamp

Before signing up to the course

  • Research your Teacher beforehand

We were extremely lucky that our tutor was extremely experienced and highly knowledgeable (it was his 20th or so time teaching the course - big up Noel* @ General Assembly Sydney) but if your instructor is no good, then you will have wasted a lot of time and money. Find out all you can about them**, and contact previous cohorts of students to get a feeling for their experience of the course / instructor...

*name hidden for anonymity

**this could be difficult as programmers are notoriously anonymous

  • Contact previous students for their experience

On the same note as the point above, use LinkedIn to find a few recent graduates and organise a call with them. Don't just rely on the high-flying top-of-the-class students that you see in the marketing material of the course. These students are not the norm and will probably have some prior dev experience and immediately got snapped up by Google. Do your research. Schools definitely have success stories and waste no time in flaunting them. Speak to the other 95%.

No alt text provided for this image
  • Get some experience with Javascript before you start

You will learn very quickly that HTML and CSS are not classed as proper programming languages, and are not a fair indication of what logic programming actually is. Javascript is what you will spend a large majority of your time doing (or it was on our course) and so spend some time with it to see if you enjoy it. Do a simple step by step project tutorial online, or do a beginners Udemy course. Then if you do enjoy it - spend more time actually getting to grips with key concepts - you don't want to come to the class Javascript fresh. Some of your class mates may have prior experience in JS (or similar dev/computer science principles), and they are the ones who really take off. Be one of them. I'm not saying you won't cover the basics of JS during the course (albeit over just a few days) but ensure this is revision. If you are still struggling with the basics in week 4, then you will have a tougher time than you would had you spent some time brushing up on the basics.

  • Spend some time learning CSS

In general, developers hate CSS (and you'll soon learn why). But during the course spend some time learning CSS independently, as how your portfolio looks is by and large how you will get hired at the end (especially by non-technical employers / recruiters). You will also spend very little time on CSS or Sass (read <2 days) but without a good grasp of CSS your projects will look like shit, and you will have a nightmare trying to cram CSS into your project on the last day before deadline. (As a back-up, also learn Bootstrap).

  • You can already learn everything online...

Almost before our teacher had introduced himself, we were told that if in our shoes, he certainly wouldn't be doing this extremely expensive course. This was music to our ears considering we'd shelled out the cost of a housing deposit or a small car on this, and thus would be spending the next three months together. However, he had a valuable point. Everything is available to learn online (potentially for free). But that's not why you are there.

A bootcamp not only gives you the discipline and structure of 9-5 teaching as well as a classroom environment to learn in, it also gives you:

- An immediate network of colleagues in the same boat as you, who will support you through the hard times, and congratulate you on the small wins. They will keep you motivated

- Immediate assistance not only from classmates but also from teachers, tutors mentors, alumni etc. So although you will spend a lot of time Googling obscure answers or requesting assistance on Stack overflow at 2am, having someone explain something to you in person is priceless.

- Career opportunities and outcomes – it is in their interest to get you employed ASAP. Even if you have been in the job market for years, you will receive great advice from career advisors that will likely be new to you, especially if transitioning from a different industry. These include mock interviews, CV and cover letter advice and feedback, networking tips and directories, LinkedIn optimisation, ways to enhance your portfolio etc.

- Alumni network – each school should have a huge network of alumni that have been in exactly the same position as you. Use them. Leverage them for advice, networking and especially as a person of reference when applying for a role at a certain company. They will be more than willing to help and are people just like you, who have made all the mistakes you’re about to as well! 


As you start the course

  • The type of computer you use is vital

Find out whether the course is for PC/Mac. If you don't have the right one, either get one, or find a different course. It won't only make the course harder for yourself, but the teacher (as well as the rest of the course will start to hate you with an infinite vengeance) as you continually ask for the other way to do things. Most courses in fact won’t accept you if you have the wrong computer.

  • Choose your text editor wisely

Unless you have previous experience, make sure your text editor is the same as your teacher's. When coding along this will make a big difference, especially when setting up new files / projects. We used Atom (and Bash_Profile).

No alt text provided for this image
  • Choose your text editor colour wisely

Chose the colour of your text editor wisely - I'm not talking about the UI theme, this should generally be dark (for the sake of your eyes / partner's sleep). I'm talking about the syntax colour, ie the colour of the words when there are different inputs. You will get used to certain colours meaning certain things (in different languages) and if you have to change it mid-way through the course, it will take a while to adjust. We used One Dark for both UI and Syntax.

No alt text provided for this image
  • Don't just watch the code alongs

Make sure you code along to everything, don't just watch. To start with it is hard, damn hard, and you will make a ton of mistakes trying to keep up...but suddenly you'll be in class and you'll move to a new language involving lots of different symbols and you'll wish you were coding the old one (eg the dreaded Javascript!), and realise how easy you find it to type “)};” Only then will you realise how far you've come. It's a great feeling!

  • Get Emmet (but only in month 2)

Typing out HTML is a real pain, that is until you get Emmet. It allows you to add classes that would be typed out as: <div class="rabbit">, simply by typing div.rabbit and then tabbing. For IDs (lesser used but just as easy) div#rabbit. You will only realise how awesome this is when you start having to type out HTML in something like vue.js, when you haven't installed the lint package and have to write all HTML out longhand. What's more, the cursor lands exactly in the right place where you would begin typing.

For example:

lorem [tab] = paragraph of lorum ipsum

h1 [tab] = <h1></h1>

Read the docs and cheat sheet to find out more.

[Tip] Only use Emmet once you have typed a fair bit of HTML in longhand so that you can learn HTML properly (and also get the full impact of how awesome Emmet is!)

  • Make sure you can type strange characters

Improve your typing, and especially get used to where the following characters are on your keyboard:

~`'"<>/|[]{}$#

You will use them A LOT and practice typing different cases eg snake_case, camelCase etc.

Here is a good programming specific resource for practising typing.

  • Learn as many shortcuts as possible

You will probably use these shortcuts throughout your entire career so you may as well start getting used to them early.

Some favourites of mine for the text editor:

CMD SHIFT D = Duplicate line

CTRL SHIFT K = Delete line

CMD click = Multiple cursors (awesome the first time you do it)

More shortcuts here.

  • Work out your screen strategy and stick with it

You will often have the following windows open, and if you are constantly swiping around to find them on Mac, it is a massive pain.

- Command Line

- Text editor (often x 2)

- Slack

- Browser

- Browser console

- Evernote (or whichever note-taking platform you use)

Download Spectacle and learn the shortcuts. Spectacle assigns each open window a half or quarter of a screen, which aside from making your screen look like a Nasa dashboard, it is also practical when working on multiple windows.

No alt text provided for this image
  • Learn to exclusively use the command line to organise your files

Never use finder / explorer, command line will become second nature soon (and although it initially seems backward, is much MUCH quicker).

These are the main commands you need - learn them.

No alt text provided for this image
  • File naming convention

Pick a convention and stick with it. From a command line perspective, always use lower case and numbering. Here is an example of my classwork structure:

No alt text provided for this image
  • Cleanse laptop and ensure OS up to date

Get a licence for CleanMyMac and use it regularly. Do not under any circumstance start the course with only 200mb free of disk space. Not only will you get sick of the constant reminders to delete files, but when you are in the middle of a tutorial and you need to install a React app for example, you do not want to waste time deleting files, as you won’t be able to catch up. Make sure you are using the most recent OS too for performance but also to be aligned to the rest of the class. You will do a lot of installing.

  • Ditch the mouse and make sure all the keys work on your laptop!
No alt text provided for this image

Nuff said

  • Good headphones

Get some good noise cancelling headphones. I got the Bose QC35s (beloved of business class passengers everywhere) and they let you zone out when you want to just get on with work in a noisy classroom. Use the Focus playlists on Spotify, or rekindle your love for deep house!

  • Find a good coffee supplier, and make them a deal!

For some spectacular reason, 7-11 decided to give out free coffee (if you bring a reusable cup) for almost half of my course!! However, to start with it was a struggle as bought coffee is something i needed to cut back on from a financial perspective. I had fantasies of contacting a favourite coffee shop and offering to build them a website (in arrears) in exchange for free coffee. Would love to hear if this works for anyone!

  • Forget excel!

If you have never used Excel then this will be irrelevant. However, I have used Excel in some form almost everyday of my career (and incidentally I love it!). Many of the problems you have to solve in Javascript would take you less than 30 seconds in Excel, but that is not the point. Excel is a fully built programme, and built to be as user friendly as possible. Programming is about building from scratch and then dynamically and at scale, something Excel (in most cases) is unable to efficiently do. Also Excel as a concept is irrelevant to programming eg variables are not applicable to Excel tables etc. It would positively hurt you if you try to think of programming in Excel terms, forget it, and think in that languages logic instead.

  • Read bug error screens

If you get a bug error, read it - don't immediately panic and close down the browser. They are written to try and tell you something and help you out. Remember, capitals, commas and colons are vital when searching for bugs. In fact ELM's errors are written in a way to actively make you a little happier...

No alt text provided for this image
  • When in the command line, don't make mistakes!!

If coding along and you miss a step in the command line or type something wrong it can take a seriously long time to fix (or you may have to start again) – for example when setting up Ruby associations!! Ensure you re-read everything you type and double check there are no spelling mistakes before pressing return. In the text editor this is different as it is simple to fix. In short, whenever you are typing into the command line make sure you are paying full attention. You can go back to sleep in the text editor.

  • Learn Git

Gitception is a real thing – and will seriously f**k up your (and your instructor’s) day / week. Learn the concept of Git, and take serious care where you initialise your Git repositories. When it comes to group projects your classmates will seriously thank you, and is also an invaluable skill when working in real life teams.

No alt text provided for this image
  • Read through your notes at the end of each day

We were lucky that our amazing TA would send through excellent notes at the end of each day. But make sure you read through them at the end of EVERY day. It will help to bring key concepts together and cement what you have learned that day.

  • Go through the warmups again

Similar to the above, go through the warmups again at the end of each day (or week) and make sure you understand them. They are modelled on technical interview questions and will help you grasp key concepts. Little by little it will sink in.

  • If something doesn't make sense...

...then practice with free online tutorials.

Use sites like KhanAcademy / FreeCodeCamp to cement your learning.

  • Become a social hermit

Cancel all social engagements during the entirety of the course. The idea / goal is to become fully immersed in coding, and this includes weekends. What’s more, as you won’t have an income, it is a great excuse to save money.

NB. On that note, give up your idea of working a second job during the course – this just simply isn’t feasible.

  • On the subject of immersion

Surround yourself with all things dev throughout the course. Instead of mindlessly scrolling Instagram on the bus, follow lots of developers on Twitter and scroll through them instead. It will give you an overview of the industry as well as an insight into the developer mindset. The same goes for subReddits eg R/Programming, R/CSS etc.

If you listen to podcasts, then there are tons of great dev podcasts. I used to listen to the back catalogue of Syntax and Code Newbie. When you need a bit of a programming break but still want to listen to something technical, you simply cannot go wrong with Reply All.

  • Google stuff...

It is not cheating to use Google. All developers use Google daily / hourly / constantly. It is a fantastic way to improve when trying to problem solve, as well as to ask all the question you might be too afraid to ask in class:

Ayush's favourite question
  • Use Chrome Dev tools

Know your way around the developer tools in Chrome. Find out what the different tabs do and explore some of your favourite websites with the element selector. This will help your knowledge around page structure and CSS. It will also help down the track when you are trying to update a page, if you don’t know the exact padding to use etc. They are invaluable, and something devs only a short while ago didn’t have access to. Use it.

No alt text provided for this image
  • Springer's final thoughts:

You'll get what you put in, the course will not teach you to code on its own.

You will not immediately get a role at Google / Facebook.

It will be fucking intense

You'll feel completely overwhelmed as soon as the course has finished

but…

It will be all worth it when you sit down on that first day of post-course employment (I imagine..!)

It is an incredible journey - just remember not to take it too seriously

Everyone has their own speed of learning...

...and the biggest piece of advice I can pass on:

Do not compare yourself to others, compare yourself to where you were at the start...

I hope that at least someone finds this helpful, and thank you for reading this far! Let me know in the comments what I have missed or anything you disagree with.

And…finally - if anyone is looking for a legendary Product Manager in Sydney, hit me up.

No alt text provided for this image



Stefan Welack

Global TA Enablement Lead @ Xplor Technologies ?? We unite SaaS, Embedded Payments and Growth Technologies that help businesses thrive | Co-Organizer #MelbTalentMeetup | RecOps | Talent Operations

5 å¹´

Well written and insightful article, Freddie. Thanks for sharing :)

赞
回复
Adam Pond

Head of Engineering (Software, AI & Robotics) @ Abyss Solutions Ltd | MBA

5 å¹´

Awesome article Freddie Butcher. Handy for most juniors, not just those doing a bootcamp course. I'll put this on my list of recommendations for juniors and enter it into my startup (SeaLadder) seed data for GA :)

赞
回复
Nick Karras

Senior Service & Product Designer with more than 8+ years experience in Government, B2C, Startups, Agency and Enterprise

5 å¹´

Great article Freddie, very insightful

赞
回复
Graham Herdman

Co-Founder @ GoalGetter | AI Engineer

5 å¹´

**Google Query** "What is a JavaScript?..." Great article Freddie Butcher, summed up the entire 12 weeks really well!

赞
回复

Amazingly written Freddie. GA could probably officially use this to give a crystal clear picture of how immersive this course could be for a few and how worth it is at the end! ??

要查看或添加评论,请登录

Freddie Butcher的更多文章

社区洞察

其他会员也浏览了