Integrating real world practice into tech education
Learning to code is rewarding. But it’s extremely difficult, especially for people who come from non-tech or non-engineering backgrounds.
It’s difficult to ignore the headlines. Programmer salaries are thought to be on the rise. AI professionals earn more than $1 million per year on average. Why dream about winning the lotto when coding bootcamps promise to teach everyone what they need to know to be on the gravy train?
The good news is that university and bootcamps usually give sufficient material for certain students to become exceptional programmers. The bad news is that the lessons aren’t enough by themselves. Programming isn’t the quickest path to a more secure, well-paid, and work-life-balanced profession. It’s a difficult career for which not everyone is suited. If it were simple, anyone could do it, and it would lose its value since supply and demand principles still apply. If everyone does it, the supply will grow and the price consumers will pay will fall.The initial stages are frequently seductively simple. I read this somewhere:
“You set one variable to 50000, which you’ll refer to as salary. Then write ‘salary=salary*10’ in the box. Bingo. You’re a programmer.”
It’s a thrilling feeling, and it may persuade you to assume that with a few more months of study, you may become a professional developer, working remotely and monetising your skillsets in a matter of months.
Got you excited?
Don’t want to burst your bubbles, buddy. But there is no secret or magical pill that makes you a competent software engineer.
Regardless if you went for a 4-year university degree, an intensive full-time coding bootcamp or you completely taught yourself from scratch, it all boils down to the same principles.
You need grit and preseverence to be successful in this field.
Forget choosing the best language, forget buying the best book, forget looking for the best online courses or going in debt for the best coding bootcamps or universities. If your goal is to learn to code and get a job, you should learn to code like real programmers do — by pair-programming and working on real projects.
The good news?
The basic information is out there, and you don’t even need to pay very much to get it. There are plenty of good courses on Coursera and Udemy. Some high-end schools such as MIT/Harvard even provide their lectures for free.
The official documentations for most programming languages are already open-sourced on the internet, whatever you learn in university or bootcamps will most likely be the same thing anyways.
What does that mean?
That means the world is not lacking more information or content on how to learn to code. A simple “learn to code” search on Google will give you millions of results.
If it were that simple, everyone should be a programmer by now. Right?
Nope. There’s a shocking statistic somewhere saying that less than 5% of online course students actually completed their courses.
People learn differently, some have photographic memory, some prefer to listen to podcasts and learn from them. If you’re one of those lucky ones who’s able to stay dedicated and hustle through the pains of learning to think computationally, all alone, great! It’s 100% doable. And you’re part of the top 10% squad in the world.
But for most people out there, it’s a tough feat. For the past 2 years I’ve been working with students from all walks of life looking to take their first steps into the vast world of technology, and here’s a little insight that I have:
No, they’re not looking for award-winning PhD-level lecturers, they’re not looking to quit their jobs full-time to have a mentor sitting next to them to help them code, and they’re not looking for a beautiful campus to work in.
They simply want to upskill, receive support when needed and be good enough to get a job.
Learning by doing
I’m not sure about you, but I absolutely suck at memorising stuff. I hate it. I’m also not one of those lucky humans blessed with photographic memory.
Personally, over the years of trying to be the traditional Asian upbringing in education, I’ve learned that what works best for me is by actually doing and applying what I’ve learned.
1 hour of “doing” easily trumps 10 hours in the lecture hall.
Learning by doing is the idea that we learn more when we actually “do” the activity.
Assume you’re a complete beginner when it comes to swimming. You can start learning to swim by reading the book. Reading about the best practices and the easiest strokes to learn. But nothing trumps you learning by just jumping in the pool and modelling off other swimmers (of course, with supervision from someone with experience — to save you from drowning and dying just in case).
For learning by doing to work, you need to lay some initial groundwork. Recent research shows that learning by doing works when it comes at the right point in the learning process. It’s important to underscore that learning is a process. Learning builds on itself, and if learning by doing comes too early, people get overwhelmed. They don’t learn.
The same applies to programming. Know some basics, jump into the unknown and struggle and drown a little bit, but have someone slightly more experienced pull you back and support you during your struggles. That’s how you learn and grow as a junior coder.
The Problem
Over 50% of university graduates in Malaysia couldn’t get a job within their first year of graduation.
Yet, employers are struggling and paying top dollar for good entry-level tech talents.
Why? Because there’s a massive skills gap in the market right now, and the current education system is not designed to solve it.
What about internships?
Internships, as many people have discovered, may be hit or miss, with students learning a lot from a well-organized organisation or doing nothing except going to work every day with no defined goals for their engagement. Furthermore, the transition for students from academics to professional settings is sometimes disregarded, as students struggle without supervision and are expected to instantly demonstrate professionalism in the job for the following three months. As a result, for more successful internships, a ground-breaking solution is required.
In Sigma School, we believe that quality education must exhibit real industry experience from Day 1. Therefore, Sigma Labs is that initiative to give our students a taste of what a developer’s day in a life looks like, enhancing students’ professional learning experience with real industrial work related to their field of study in Tech, primarily focused on Software Development & Cloud.
Inspired by hairdressers & dentists
When it comes to skills that require practical experience and knowledge, a certification is nowhere close to what’s needed in the real world.
That’s true.
I got this idea several years ago when I was invited to get my hair cut by a junior hairstylist for 30% the price of a professional hairstylist. The junior was led by a senior hairstylist and since I wasn’t a runway model or anything, I took the bet and tried it out.
And if you think about it, it makes perfect sense. I get a way cheaper haircut, the junior hairstylist got real-world experience and the hairsalon managed to make a profit while leveraging on their unfair advantage to junior talents.
Think that only works in the hairsalon industry? Think again.
Most, if not ALL universities today have a compulsory weekly practical training session for their students in Medicine or Dentistry.
Students are required to serve real patients as part of their programme. Universities charge a small fee ~RM30 to patients who are willing to see Student Doctors. Again, a win-win for the patient, the Student Doctor & the university.
Let’s apply that to coding education. Sigma Labs is here to bridge that gap for the coding world.
The Solution for the Future
As we attempt to redefine internships and industrial experiences, where students get to experience a genuine working setting and projects, we do so whole-heartedly to guarantee that every student is accounted for with industrial project work assigned to them, covering everything from project execution to client demands. Aside from that, they won’t be thrown into the lion’s den and left to fight for themselves; instead, they’ll be paired with one of our Industrial Mentors, who are tech specialists who are passionate about leading and training the next generation of software engineers!
Want to get accepted into Sigma Labs? Do this.
1. Build a lot of simple things, not one hard thing
You shouldn’t overthink the projects you choose to construct in the same way you shouldn’t overthink the language or tools you use.
Here’s a story on building skills, from the book Art & Fear: Observations on the Perils (and Rewards) of Artmaking.
In a nutshell, a pottery class is divided into two groups. One group is required to produce a piece every day and submit their finest work at the end of the term. The members of the other group are given the opportunity to work on a single item for the duration of the term in order to create a masterpiece.
When the semester was over, the group that had completed items every day consistently produced the greatest work. The same holds true while studying programming. When you code and complete little tasks often, you learn better and quicker.
It’s still good to work on passion projects that are specifically relevant to you, as mentioned earlier, but it’s not good to spend more than a few hours deciding your next project or researching the perfect next step.
It’s fine to work on something weird or fun for temporary amusement, as long as it’s something that works. Jennifer Dewalt, the founder of Zube, showed that there are 180 different things you can code in a single day. With each new project, she added to her portfolio and gained new skills.
You also don’t have to be absolutely haphazard with your project selections. It’s beneficial to try a variety of projects so that you may broaden your capacity to deal with a wide range of programming problems. Just remember not to overthink it. Start producing software instead of researching and thinking.
2. Push yourself, but not too much
Many folks advise that you write code every day. For the most part, this is sitting down at the computer after supper and beginning a new lesson. You will forget if you do not do this and let too many days to pass. Putting in the hours is the only way to develop instincts and mental muscle memory.
If you can maintain this pace for many weeks, you’ll be able to tell whether coding is a career you’ll be able to do for more than 40 hours per week.
It may be argued that coding every day is harmful to your ability to code. While you sleep, relax, and focus on other things, your brain needs time to recuperate and handle challenging problems in the background. Taking a day off is beneficial to your problem-solving abilities.
However, if you lose desire and are unable to return to the classes, it may be a hint that coding is not the correct route for you. Taking a vacation from coding allows you to take a step back and assess if you want to return to coding in a few days, putting your motivation to the test.
3. Find a buddy and learn together, in person
This is one of the most difficult tasks on the list, but it is also the most crucial. Coding by yourself can only get you so far. You require someone with whom you can meet on a regular basis for 4 reasons:
- You can practice collaboration and idea-sharing and see a different perspective.
- It will keep you motivated and accountable to each other’s progress.
- You learn to pair-programme like real coders do.
- You will learn from each other.
The biggest motivator for a self-taught programmer is having a friend or mentor who pushes you to stay up with their speed. It’s quite simple to let your development slide if you don’t have that social connection, because no one will notice.
By the way, I don’t mean “in person” in the literal sense. Many technologies for collaborative work, such as JSFiddle, have emerged in the aftermath of the epidemic. It may be just as successful as meeting in person if you combine them with a video call.
Another important stepping stone on your journey to becoming a professional is experience working on projects with others. Because you’ll be interacting with people in almost every career, this experience will teach you how to navigate and learn from such encounters.
When you work alone, it’s tough to solve challenging problems since you don’t have somebody to introduce you to fresh ideas. Other people can be more useful than Google in some situations.Keep trying several strategies to find a partner in coding:
- Try to encourage some friends or co-workers to join you, or look for other people who are likely to be interested in coding together.
- Go to several different programming-related meetups in your area. Some groups might not be as welcoming or open to mentoring, so you’ll have to keep attending to try to find people who won’t resist mentoring or pair programming or who don’t just want to keep to themselves. I found several groups in which all the members just got on their computers and barely spoke to one another. Try to find better options than that.
If you need help and still can’t find anyone to work with, join Sigma School. The 1st online, peer-to-peer learning community with professional mentors supporting!
Thanks for reading all the way to the end!
If this is something you’re passionate about or if you’d like to be part of Sigma Labs, come and join us!
Here’s to redefining education. Cheers!
No spam, no sharing to third party. Only you and me.
Member discussion