Bad software – Kopitiam top up machine

guy looking stressed presumably because of the kopitiam top up machine
Photo by Nik Shuliahin on Unsplash

Enough is enough.

We live in 2017 in a world where tech exists in every nook and cranny of our daily lives. Everyone has picked up a vocabulary of tech – gestures, button symbols, emojis (and emoji shortcuts :+1:), and so on.

Therefore it’s no longer cute (or excusable on the part of the developer) in my opinion to put out poorly designed software (in) products. Sloppy software delights nobody and frustrates practically everybody. Especially developers!

So in a bid to raise the overall standard of tech, I’m going to call out organisations that put out crappy, sub-standard software into the modern world.

First up, Kopitiam.

Continue reading “Bad software – Kopitiam top up machine”

7 Things I’ve Learned About Programming Bootcamps (After Attending One Twice)

Between 2016 and 2017, I went from knowing nothing about code to becoming a software engineer at Metisa, a startup that is building an end-to-end data science solution for e-commerce businesses. It went smoother than I could ask for, but that is not to say that I didn’t second guess my decisions at every turn. In this article, I’d like to share what I’ve learned from attending programming bootcamps – I attended the same one once as a student and once as a teaching assistant. My hope is that this would help you make an informed decision about entering tech via programming bootcamps, if you are interested.

Less than a year ago, I was a non-technical founder of a technology startup. That did not go well, and I was losing confidence in myself everyday for not understanding, at a fundamental level, what it takes to build a great tech product.

When the time was right to hire interns from the School of Computing at my alma mater (NUS!), I hit an impasse and stopped working on the product altogether. That was when I started to learn programming, first on my own using free online resources like FreeCodeCamp before eventually enrolling in General Assembly’s Web Development Immersive in Singapore.

I don’t want to dive into the specifics of the General Assembly course (I’ve written a review for that) but instead, I’d like to reflect on programming bootcamps more generally. What are they and why are there so many of them now? Do they deliver results? Should I join one to make an entry into tech? I’ll indirectly take a stab at these questions with the bullets below.

1. Programming bootcamps are sprouting in response to demand

I’ve noticed programming bootcamp providers like General Assembly and Alphacamp and many others setting up shop recently. It probably began much earlier in tech hotspots like San Francisco, but in Singapore I’d place the start of this trend to be around 3 years ago. Their boom is likely attributable to market economics: there are more companies currently trying to hire software engineers than there are software engineers to hire.

Consensus among the people I know who have gone through programming bootcamps as well as those who help teach them is that it is an exciting time to be a software engineer. Aside from the code literacy movement, it is exciting because many companies are hiring. If you are good enough (we’ll get into that later), you are likely to have some bargaining power.

The operative word here being “good”, of course. It’s difficult to justify having to pay upwards of SG$3,000 to employ a bootcamp graduate who needs handholding and constant guidance. This difficulty is exacerbated by the fact that the majority of tech companies are really tech startups. In other words, teams that consist of 3 to 10 people. Let’s just say that these small organisations will never be in the mood to hire people who can’t contribute almost immediately to their teams.

So while demand for software engineers is strong, you will still need to prove that you are capable of contributing to the team quickly. Which is perfectly possible if you are focused…

2. Much to cover in little time


What is it like trying to become a professional software engineer just by going through a 12-week course? One word. Tough.

If you have a friend who is joining a course half-heartedly, or you are thinking of doing that, please be careful. While it is not implausible that you will end up fine, it is highly unlikely that you will. There is a lot of ground to cover in a short amount of time.

Here’s a non-exhaustive sampling of things you will need to get used to or become good at in 12 weeks:

  • Getting comfortable reading code (eg. if x = 3 and y = 4, then x = y is not an error but a reassignment of the value of x to the value of y (x is now 4))
  • Reading code written by others
  • Remembering to some degree the syntax of HTML, CSS, JavaScript and Ruby
  • Talking through your code (“This chunk should be abstracted to another function, which takes in 2 parameters…”)
  • Debugging code that is not working
  • Understanding the legacy of JavaScript, the difference between versions of the language (ES5, ES6) and their different implementations by Chrome, Firefox and Safari
  • Designing database structures
  • Understanding the performance of your code (nested for loops is almost never okay)
  • Finding answers to multiple super specific questions simultaneously
  • Memorising 30 keyboard shortcuts that make coding quantifiably faster
  • Understanding the workflow that software engineers use to collaborate (“Git”)
  • Learning new technologies, concepts, frameworks after you’ve just learned a dozen (Webpack, Babel, SCSS, LESS, ReactJS, Angular 2, VueJS, TypeScript…)

To become proficient in making web applications that people actually use, you will need to be conversant with all the above to some degree. If it seems like a lot, that’s because it is!

That said, when I was a student at the Web Development Immersive at General Assembly Singapore, I constantly reminded myself that the level of intensity I was experiencing was a feature, not a bug. I didn’t want it any other way, because it’s supposed to be intense. If it isn’t, I would feel like I was getting a bad deal. And that would have probably been true.

So prepare for an intense few months. Go all in, or don’t go at all! This segues nicely into the next point…

3. Programming bootcamps leverage the cohesive power of self-selection

They say that true friendships are forged through hardship.

Cheesy, I know… but then again, some of the friends I trust the most are those whom I rubbed shoulders with in the Army, digging fire trenches while everybody else were asleep. It’s almost the same with programming bootcamps.

In fact, I think programming bootcamps might even be more conducive for nurturing lasting friendships. First, there’s the hardship. Across two batches of students I haven’t seen anyone breeze through the bootcamp. It is at least going to be a strain on the brain sometimes. Then throw in the mix the fact that everybody in class actually wants to be there, and you start to see why it’s one great playground for making lasting friends.

Since programming bootcamps are not like universities (almost nobody cares about which bootcamp you come out from if you cannot code well), it is safe to assume that nobody goes in purely for certification. In my opinion, collective affection towards an art (programming is definitely part art) is one of the strongest forces that coheres disparate people into lifelong friendships. I’m still good friends with my batch mates and the students that I helped teach, and I don’t see that changing any time soon because many of us remain interested in becoming better engineers.

To borrow from Neil Gaiman, most of us are moving towards the same “mountain”. Along the way, we inevitably meet at the same pit stops (read: events/meet ups), and at some point I have no doubt that some of us will hitch a ride together in a company van.

4. Employability after a programming bootcamp

my classmates at general assembly
Me and my awesome classmates on the way to refuel our brains with food

The question I’ve been asked most frequently is about employment. “How was your job search after the course?”, friends would ask with a mix of curiosity and apprehension. Curious because they want the answer to be “easy”, and apprehensive because they know that would mean having to take a leap of faith to start a career in a new industry from scratch.

Regardless, I always tell my friends that whether you are employable or not depends largely on the same few things:

  • What kind of person you are
  • Your background (gender, age, experience)
  • The quality of the programming bootcamp you attended

What kind of person you are

Do you embrace change, or prefer to avoid it? If it’s the latter, you are more likely to see every obstacle as insurmountable.

Do you believe programming is “for you”, or not? If at the end of the course you cannot convince yourself that you are a programmer, then it is near impossible to deceive an employer into believing it. The excitement of programming sits somewhere between drinking a cold beer and watching paint dry for most people, so unless it is at least on the cold beer end…

Do you have a compelling reason for choosing programming over the alternatives? If the answer is no, then you may not be happy at your new job anyway. (Most of us do not work remotely at cafes around the world.) The lack of intrinsic motivation can also affect how good you are at it.

Your background

Do you have relevant experience to bring to the company? I’ve seen friends from a User Experience (UX) background emerge from the programming bootcamp to get snagged by established startups. Another friend with advertising background managed to use her experience to land a role as a Product Manager at a technology media startup. If you don’t have prior work experience (like me), that is okay, too. Adaptability and freshness certainly have their place in tech, and can be spun into something positive.

Are you going to be a woman in tech? In Singapore gender equality at the workplace is quite good (though the ratio is still 7 men to 3 women). But this is something to consider if you intend to work in Silicon Valley or other cities in the US. Unequal treatment and sexual harassment is still a thing there. What I’m trying to say is, it can be unfairly tough to be a woman in tech in the city you’re going to ultimately work at. While I hope you never have to experience what Susan Fowler went through at Uber, just be prepared for chauvinistic assholes. A bunch of them are still out there…

And here’s a big one that few people like to talk about for obvious reasons: Are you above 50? I don’t think people in tech try to be deliberately malicious towards people who are older, but I think very few companies are open to the idea of hiring older people. Many employers, I think, reason it this way: “if I can find someone younger, it would be easier for the rest of the (young-ish) team to communicate with him/her.” They also see many young people everyday, and there is a good chance that most of their engineering team is aged between 30 to 39 years old (44 percent of the industry are, according to Singapore government data). Alas, it is also harder in general for an older person to switch careers than it is for someone younger, regardless of the destination industry.

Finally, one last but important factor that determines post-graduation employability is quality. How well does a programming bootcamp prepare you for The Real World?

5. Quality of a programming bootcamp depends on Instructor and Attitude

Quality to me is associated with two things that are intertwined:

  1. Dedication and experience of the instructional team
  2. Your attitude towards learning

Having something does not mean you will use it well. To get the most out of any situation, be it in a class or at a company, a positive attitude is paramount.

But let’s start this discussion by first evaluating the quality of bootcamp instructors.

Quality of the instructional team

The programming bootcamp that I attended (Web Development Immersive at General Assembly) had a terrific instructional team that comprised of a lead instructor and two teaching assistants. Our lead instructor, Jeremiah, had about 10 years of experience making games in his own studio. With that level of experience, he could teach himself web development and then teach it to us. He is also incredibly eloquent, adept at explaining complex ideas in a way that is easy to understand. The impact he has had on me as a programmer now is hard to overstate.

One of our teaching assistants, David, was a former graduate of the bootcamp, which I think added a nice touch of reality to us as programming wannabes. I used David as a benchmark of what I could be upon completion of the bootcamp. Our second teaching assistant, Rama, was a fresh graduate from the Singapore University of Technology and Design’s (SUTD) Bachelor of Information Systems Technology and Design. He brought more theoretical knowledge into the class along with an appreciation of computer systems and advanced technologies like artificial intelligence and machine learning. Both of them taught me many things, among them how to debug in every situation.

That said, it’s not always possible to find blogs that cover a bootcamp in enough detail to help you make a judgement, so this may be, out of necessity, a leap of faith. The best alternative to suss out any bootcamp is by asking your friends who have been through it. LinkedIn makes this a trivial task. (If you have questions specifically about General Assembly in Singapore, check out my detailed review.)

Quality of your attitude

Assuming you’ve found a bootcamp with great reviews, success is not yet guaranteed. A lot still depends on the student…

Here’s a short story to illustrate the point. I hate running. I’ve always disliked the idea of moving my legs faster than I care to, prancing about from destination A to B and then back to A again, all for the sake of calories and a healthier heart.

To me, getting ready to go for a run is just about the most dreadful thing possible. I would hesitate to put on my workout clothes, looking out the window to see if inclement weather could save me from doing it. Getting out of the house is hard, but the actual running would always be even harder. Only when it is over will I ever feel happy about running.

Recently I’ve had a conversation about this with my wife, and she made me realise that the problem was that I have a poor attitude towards running, and it’s been affecting how I view and perform during runs.

According to her, we live in a great neighbourhood, right next to the country’s largest nature reserve. In comparison with many others, we have it good! The air is fresh, the trees shelter our runs, and being back in nature is proven to help humans destress. My lousy attitude towards the very idea of running has robbed me of the opportunity to see and leverage what is available to me.

This is the same thing with a programming bootcamp. I’ve seen some students gripe about not having this cheat sheet or that remedial lesson, as though they are necessary if they paid attention in class and asked on-point questions!

So the point here is this: get into the learner’s mentality. Accept that practically everything is going to be new. But more importantly, understand that even though you are paying your instructors, they cannot do anything for you if you are not primed to receive it.

Sorry if I’m the one who breaks this to you, but there are no Game Sharks™ to becoming a programmer. You have to learn, apply, get stuck, get unstuck, and repeat… which brings me to my next point.

6. Good programming bootcamps teach you how to learn

The reason why it is even feasible for programming bootcamps to consistently deliver results (ie. employable software engineers) is because it is focused. Hot, electron-kamikaze laser beam focused. Bootcamps are designed to train practitioners, not scientists. If a topic is covered in class, 90 percent of the time it is because the content is necessary to help you build web/mobile applications. The other 10 percent are nice-to-haves.

I heard an interesting anecdote recently at a panel discussion in a bootcamp class about the difference between bootcamp and computer science (CS) graduates. The person who spoke said that CS grads are typically stronger in a few areas:

  • Writing complex algorithms that have good performance (running them takes less time and memory/space)
  • Solving problems mathematically

And that most bootcamps grads are better at:

  • Knowing what tools and libraries to use to get the job done
  • Understanding the implications of choosing a group of technologies (“stack”) over others

I think there is a kernel of truth in there, but I also think this is a false dichotomy. Anyone can be good at any of these things. I believe that the real point of differentiation lies in your ability to learn.

Good programming bootcamps will emphasise the importance of learning how to learn: how to find answers to problems, how to research the best stack to use for a project, how to write code that is easy to understand and maintain and so on. The really good instructors will not let you in on the answer but instead, guide you to arrive at the answer yourself.

bruce lee quote on being a teacher
A quote Jeremiah shared with us at the end of the course.

7. Not all graduates pursue programming as a career

Here’s my final observation: not all people enrol in programming bootcamps because they want to become software engineers. A few do it to gain a complementary skill to their business. Even more do it to find out if they can do it, or if they like being one.

Most of the entrepreneurs that graduated from my batch and the one I taught continued to run their business after the course. Those who enrolled to understand themselves better, to see if they can or cannot be programmers, all achieved that goal. I guess 3 months of writing code every single day can reveal a lot of things you did not know about yourself.

Whichever is the case for you, I think these are perfectly legitimate reasons to enrol. Just take note that if you are receiving a subsidy or grant from the government, there is a good chance that you are bound to an agreement to find a job in the tech industry post-graduation.

That’s it. I hope this was useful with informing you about programming bootcamps. If you know someone who might benefit from reading this, do consider sharing it with them!

General Assembly Singapore Review – Web Development Immersive

Hey there.

If you’re searching for an honest review of some of the programming courses currently available in Singapore, you’ve come to the right place. I will lay out in this post what I think about General Assembly Singapore, and specifically, its Web Development Immersive (WDI) full-time course. You can say that this is my attempt to contribute to the community after what I’ve gained from it. Specifically, I want to thank Jared Tong for writing his review that helped me and several other people make a decision to enrol.

Before we go on, I want to make it clear that this is not a sponsored post. I don’t even think anyone at General Assembly knows I’m writing this. Everything I’ve written here are my honest thoughts, designed to give you information to help you judge for yourself. You may disagree and frown, or you may nod in excitement; whichever it is, if something is burning inside, feel free to leave a comment. My goal is to help you know more about WDI, what it is like picking up programming and other little things that you might consider important to know about a career in tech.

Here’s the breakdown of this post:

  • My story before General Assembly – to provide context
  • What is WDI? What kinds of people typically enrol?
  • Other courses available at General Assembly Singapore
  • Day-to-day life as a WDI student
  • Concluding thoughts – Is it worth the money? How to decide?

One last bit of preamble about course providers before I tell you my story. There are several companies now providing programming bootcamps (as they’re now being called), like Alphacamp, and you might want to shop around before making your final decision to join one. This post is mainly about General Assembly’s Web Development Immersive.

Okay, time for a short story to give some context.

Before I joined General Assembly

I believe every review is biased, and one of the most effective ways to neutralise biases I know is a general serving of Context. So here’s mine. Feel free to skip to the next section if you just want the juice.

Before enrolling in WDI, I was running my own hardware startup, Flowriter. For a few reasons, it did not get very far. It’s a long story and I won’t bore you with the details, but I have one poignant memory to share that is relevant.

I was building a laptop for writers. Things progressed for 8 months as I made prototype after prototype that customers tried and gave feedback on. When I was finally ready for production, which included writing new software, I listed “Help Wanted” on job portals and got a few applications. But when a few internship applications finally streamed in, I froze.

Trouble with being non-technical

As someone with zero coding skills, I could either accept interns and let them do their thing while I accepted whatever they produced (I’d have no idea whether any of it is good or bad because I just won’t be able to tell), or I could pick up programming myself and come back later to the idea.

You can probably guess my decision.

We’re going to talk about what kinds of people enrol in bootcamps soon, but it’s set to say, I was on the Business Side of Things™. I remember vividly the high-chinned software engineer who worked in the same co-working space where I worked. He would take every opportunity to make me feel stupid, often passive aggressively sneering at me for trying to build a technology product without understanding code. Even though he had a terrible way of putting the message across, he had a point.

I’m intrigued by technology and the endless permutations of its application, but not knowing how to code was inhibiting me from being able to create with technology. Besides, I’m done being the subject of many a software engineer’s condescension (a separate topic in itself).

So it was with that seed in my head that I enrolled in WDI to Become Technical (TM). It started in August 2016, and by the end of November, I was a junior software engineer. I did not go back to work on Flowriter, because I was in love with programming.

We’ll go into the juicy details about the course very soon. Right now, let’s talk briefly about the company that is making things happen.

General Assembly Singapore

my classmates at general assembly
Me and my fun-loving classmates on the way to refuel our brains with food.

General Assembly is a US-based education company. I’m not sure why the founder chose to name it after that important congregation of people in the United Nations, but I’m guessing it shares similar reasoning with why JavaScript has “Java” in its name. Anyway, they set up the Singapore branch relatively recently, perhaps less than 2 years ago. The Web Development Immersive is one of their first running courses here.

On their global website, General Assembly touts themselves as a company that “fosters an elite professional community of individuals and companies through education and strategic career connections.” I know it sounds a little snobbier than what we’re used to, but don’t worry, the folks at General Assembly Singapore are not high-chinned elitists. I found them to be quite a fun loving bunch.

Who they are are people who have spent significant time and effort in building relationships with government and industry. They have are great connections with the local tech industry (read: startups and big companies) and a solid curriculum for the Web Development Immersive, which is getting even better with each batch. There’s also a generous government subsidy for Singaporeans, which is covered in detail in a later section.

Who signs up for the Web Development Immersive here?

As formally alluded to on their global website, the goal of the Web Development Immersive is to help people enter the tech industry. Specifically, it is a 12 weeks full-time programme designed to teach and guide you to become a web developer.

Based on my observations, in Singapore, the burgeoning web development course is popular among these 2 groups:

  1. Fresh graduates/Disillusioned corporates looking to work in the tech industry
  2. Entrepreneurs with a desire to Become Technical™

Age of students vary from 18 to 50+. That’s a big range, and I see it as a good thing. What ends up happening is that people with very different professional and personal histories come and learn together. A lot of projects that students choose to work on during the course are inspired by their experience before joining the course, which is really interesting to see.

What web developers do

Just in case you’re not sure what a “web developer” does, here is a general definition:

A web developer is someone who writes code mainly for web applications.

In 2017, the term “website” is overloaded, because websites are now way more sophisticated (and useful) than static blogs. Airbnb, Facebook, Google Maps and Evernote are/have web applications – the code with which these businesses are built is written by web developers. Put another way, web developers build many of the apps we now use everyday.

Here’s a bit more context about the course. At the time of writing, there are 2 WDI cohorts running concurrently at General Assembly Singapore. Each class has roughly 15-20 students, a lead instructor and one or two teaching assistants (depending on class size). When I was a student, my class had about 20 students. Our lead instructor was Jeremiah Alexander (he’s brilliant) and David Tan and Rama Krishna were our teaching assistants. The quality of the instructional team exceeded my expectations.

Technologies and Concepts I learned during the course

I hear many friends making passing remarks about wanting to learn to code, and I always encourage them to give it a shot. But I’d always highlight the difference between wanting to be code literate and wanting to write code to be used in an actual product – the former is possible in a matter of weeks, and the latter is a never-ending quest, as it is with any craft, and is impossible without consistent practice.

To be at least capable in developing simple websites and sophisticated web applications, you need to know several things.

High level things

  • how to read code, including that of others
  • understand how the internet works at a fundamental level
  • how to write code for the browser (HTML, CSS, JavaScript)
  • how to write code for the server (nowadays JavaScript with NodeJS or Ruby on Rails)
  • how to design and implement a SQL/NoSQL database
  • how to control the flow of a programme
  • how to go about debugging code that doesn’t work
  • how to collaborate with other developers (Git, GitHub)
  • how to deploy code to production

Languages, frameworks, libraries, technologies

  • HTML and CSS
  • JavaScript, jQuery
  • Ruby
  • Postgres SQL (structured database querying language)
  • MongoDB NoSQL (non-structured database querying language)
  • Git (code versioning software, also used for collaborating with other developers)
  • Bootstrap, Semantic UI, etc. (libraries that make CSS more manageable)
  • Node and Express (server side framework using JavaScript)
  • Ruby on Rails (server side framework using Ruby)
  • Web sockets ( and Rails ActionCable)
  • AJAX, APIs
  • ReactJS / VueJS / Angular 2 (front-end frameworks, game changers!)
  • Many, many open source packages/gems

It’s best to bear in mind that this list will change significantly in a matter of months, especially in the tech industry where a newfangled library gets adopted by the community every few months. Ultimately, what matters is that we learn how to learn. That way we can add or remove things to our tool belt.

What it’s like being a WDI student

collage of student experiences at general assembly singapore
Super smart WDI batch 7, with whom I had the good fortune of being a teaching assistant.

WDI is not for the half hearted. I don’t say this with glee but with concern. To be able to graduate as an employable full stack web developer, you will need to get your life in order before the course even begins, because it is going to be intense. And this probably shouldn’t come as a surprise, since 3 months of training is not exactly very long for the basis of a new career.

If you’re thinking of taking this course while running a business or even working part-time, consider making plans to extricate yourself for the duration of the course. The course runs from 9am to 5pm every weekday, and homework is likely to occupy on average 2 hours every evening, perhaps even more on weekends. It can also be physically draining because code, in its conceptual or applied form, drinks brain juice for breakfast (the brain consumes a disproportionate amount of energy to its size).

Now that I’ve told you that, let me tell you the good parts of joining a bootcamp like the Web Development Immersive. In one sentence, I experienced a transformation and I found my tribe. It was amazing. Here are 6 reasons why.

1. Everyone in your class is self-selected

This is the first in the list for a reason. In my opinion, the fact that every person in your class has chosen to be enrolled in the course makes a world of difference. Unlike our poly/JC/university days, almost every person who has decided that $12,000 (more on that later) is a good investment in their own learning is at least interested in giving programming a serious shot.

This is the basis of an important feature of this course: whenever you’re stumped by a complex idea or unable to debug your code, you know you can turn to your peers for help. I found the discussions with my curious counterparts to be helpful, enlightening and fun. These conversations also bring us closer as a friendly band of web developers. Of course, if we can’t grasp/solve a problem on our own, we always had the instructional team to turn to.

2. An experienced and knowledgeable Instructional Team

My instructor was Jeremiah Alexander, who in my honest opinion is one of the best coding instructors you can ever ask for. He is methodical in his teaching, takes time to provide thoughtful answers to any question, and a really interesting person (he ran his own game production studio for almost a decade!).

Of course, the instructional team also consists of teaching assistants whom I’ve found to have had a significant impact in my learning. They are usually either graduates from a few batches before or graduates from university computer science programmes, and they bring with them valuable insights to becoming an effective web developer.

Most importantly, you reap what you sow (the following quote is shared with us by our instructor, Jeremiah):

“A teacher is never a giver of truth; he is a guide, a pointer to the truth that each student must find for himself.” – Bruce Lee

3. Support outside of class hours

Many students stay back after class until we are told to go home. General Assembly welcomes you to do that.

Also, students use Slack as an internal communications tool. A lot of students stay up past class hours to complete assignments and do supplementary reading, and they usually keep Slack running in the background (often because they too sometimes seek help). What this means is that if you faced a problem you can’t solve, there’s a good chance that someone is available to at least hear you out.

That said, this depends on the unique dynamics of the class you end up in. Every group is different, but from what I’ve seen in my batch (WDI 5) and the batch I helped teach (WDI 7), there is a tendency for GA students to be collaborative rather than selfish. Maybe it’s something they spritz in the air.

4. Lectures, labs, projects

Lecture, lab, lecture, lab, mini project, lecture, lab, … project. Repeat.

Lessons are deliberately formatted this way to make you think about concepts until you intellectually understand them, then force you to apply what you think you’ve just understood by immediately writing code.

During labs, you are given the time to write code to achieve predefined objectives and whenever you face a problem, the instructional team is on standby, ready to offer guidance. I cannot overstate how useful this set up has been in helping me learn so much so quickly.

There are 4 units in total, each taking 3 weeks. In that 3 weeks, the first 2 are used for lectures and labs and mini projects. The last week is always project week, where you get to build what you like, as long as it met the technical specifications. Project weeks are intense and potentially incredibly fulfilling.

Ultimately you will end up with at least 4 different projects that can be showcased as part of your web development portfolio. This will be the key to your entry into the tech scene.

5. You have a dedicated career coach

Bryant Tang is the dedicated career coach at General Assembly when I was there as a student and teaching assistant. He does a good job preparing students to be employable first-time web developers, and he does it well because he genuinely cares.

Bryant’s connections (together with GA’s) to the local tech industry is also extensive, which helps in your post-grad job hunt. You need to have a good attitude though, otherwise as you might imagine, it may be difficult to recommend people with poor attitudes to potential employers.

6. You will graduate with a group of technical friends

Here’s something that might not occur to you until you’re graduating – when you finish the course, you will have known 15-20 like-minded technical friends. I only really noticed it when I would bump into several classmates at the few tech events that I go to. Why is this great? I don’t know, but it sure is nice to see familiar faces everywhere you go.

Now that I’m done with the course and am reflecting, I realised that I now have many friends who are software engineers at tech companies, in both startups and well-funded companies. There are people working at software consultancies like Tinkerbox, Palo IT and ThoughtWorks, product companies like TradeGecko, Metisa, 2359 Media, Paula’s Choice and Tech in Asia, and others who are working on their own companies. (Not an exhaustive list.) Some are working as product managers. Some have since been featured on the news.

I’m tremendously excited to see where everybody goes on to work on. As I grow as a software engineer, I have no doubt that they will too. If nothing more comes out of it, it is at least just fun to watch people grow!

Is it worth the money?

Time for some real talk. If you’ve read this far, you would probably have a rough idea of what the Web Development Immersive course is about, and you may be wondering whether it’s worth the $12,000 price tag.

My answer is an overwhelming “yes”. Even if you had to pay full price for it (but you most likely won’t have to if you are a Singaporean).

IMDA’s TIPP subsidy programme

At the time of writing, Singaporeans get a heavy subsidy from the Infocomm Media Development Authority (IMDA) when enrolling in the Web Development Immersive, purportedly to encourage more people to take the leap into the technology industry. From their website:

 TIPP is an initiative by IMDA to convert non-ICT professionals, especially graduates from Science, Technology, Engineering and Math (STEM) background or other disciplines into industry ready ICT professionals and placed into tech roles, after undergoing a short, intensive and immersive training courses delivered by industry practitioners.

As a Singaporean, you will likely only need to pay somewhere around $5,500 instead of $12,000, and there’s almost no paper work required on your part. But nothing is free – so be prepared to work for the subsidy. There are post-graduation requirements that you will need to meet to fully qualify for the subsidy, like finding employment in the tech industry within a few months of graduation (it might be 3 months if I’m not mistaken). Great perk, but you have to work for it.

Cost vs Benefits of investing in WDI

While Singaporeans have it shiok, I’d recommend foreign friends to still consider the course. One of the biggest pull factors for me to decide on WDI was my friend Rebecca’s recommendation. She’s Singaporean but attended school in New York. She enrolled in GA New York and paid full price, and one day when I asked her about her experience, she ended up strongly recommending me to give it a shot despite not knowing about the local subsidy. That gave me a confidence to take the leap. Consider me encouraging you to do the same.

That said, please also take time to ask yourself some basic questions before throwing your chips. Context is important, and I don’t know yours. Here are some questions I’d ask you if you were a friend and asking me how you should decide:

  • Why do you want to be in tech?
  • Are you, by any stretch, someone who romanticises programming?
  • Hint: most of us don’t work remotely by the beach, because sand and Wi-Fi
  • Does seeing/writing code intrigue or scare you?
  • Do you think you will derive joy from making a working programme?
  • Do you enjoy or dislike constant brain work?
  • Can you afford the time and money in your current situation?
  • 3 months of learning by applying, practically every single day (including weekends)
  • $12k or $5k (depending on nationality), and having no income for the duration

Your answers to the above questions (and more) should provide a good indication as to whether you will find WDI worthwhile and worth the money.

Concluding thoughts

I’m going to share briefly a few other things that might help you decide.

Firstly, GA Singapore may be young, but it has by the time you read this trained almost 100 full stack web developers. This means two things: (1) you probably know someone who knows someone who has completed the programme whom you could ask; (2) the course must be, by inference, at least of an acceptable quality.

Secondly, while I don’t like to admit it, General Assembly is becoming a brand name education provider. With it comes a level of awareness among employers. I hope that we, the graduates of the programme in Singapore so far, do a decent job at bringing up the name further among employers here. (So far I think we’re doing okay.)

Finally, and I know this sounds obvious, remember that ultimately you determine how much you get out of any course through the hours and energy you choose to put in. I’ve witnessed peers and my students ride different growth curves and ending up occupying different ends of the technical spectrum. A good attitude and earnestness to learn sets you up for success.

Ping me if you need help/answers

I hope this was helpful for you. If you have any questions that was not covered here, or thoughts you’d like to express, feel free to leave a comment or message me on LinkedIn or tweet me.

Edit (28/10/17): I recently started a new segment on this blog called Bite Size Programming, where I cover programming concepts one bite-sized topic at a time in plain English. Head over if you feel like getting your feet wet right now, or join the mailing list to get posts delivered to your inbox for reading on the go.

Bon voyage!