First off, if you can afford the time and money to go to a university for a computer science program, in my opinion, you should definitely go to a university. Going for an undergrad will most likely be one of the best growth years of your life. You will meet and learn from amazing people; your perspectives will change, and you will have a lot of personal growth. Going to university will also open up the possibility for you to pursue graduate programs if research is your thing.
However, there are other options too. Let’s explore.
Problem-solving, problem-solving, problem-solving
Developers are problem solvers. They might be solving problems for businesses, charities, governments, the earth, or their own defined problems. Almost everything in the modern world uses technology that is programmed. Even the technology that is mechanical, was built by a problem solver. The only thing that changes is the tools these problem-solvers use. For developers, the toolkit consists of different ways a machine can be instructed to do something. Being able to provide those instructions is what developers do.
For developers, writing code can become muscle memory, like speaking in your native language, simply writing code is not where we problem solve. Like poetry, solutions designed by programmers are creative. This creativity can be expressed by writing code, or even by creating a visual diagram. In fact, software engineers may not even be writing as much code in the future but use no-code platforms to create solutions.
As you progress in your career as a developer, you will probably write less code and solve complex problems at a high level without worrying about the low-level details. So the really useful skill is being able to problem-solve with the resources that are available to you.
Some examples are, that you can create a website today by writing code and then figuring out how to share it with the world (hosting), or use an existing solution like webflowto create your websites. Based on the requirements of my clients, I suggest different solutions, I problem-solve with the tools available. When you are designing large systems, imagine social media platforms like Facebook and Instagram, they have a million more complicated problems due to the scale and complexities.
A person or team designing large-scale systems has to think about millions or even billions of people using their software, and it has to meet all their needs. So the problem-solving techniques and tools become very different.
So why did I repeat this term problem-solving so much? It's because you need problem-solving instincts before you learn how to write code. That's where Learnlycomes into the picture.
How does Learnly help?
A lot of online courses and bootcamps promise this "0-100 become an expert in X". Usually, only people who have natural problem-solving abilities or have developed that skill, succeed in these bootcamps, courses, and universities.
Universities are usually so fast-paced. People who don't have problem-solving skills developed, usually drop out. My first programming class at university had 3 sections of 400 people, while my last year had 1 section of 40 people. In some cases, these online courses that promise 0-100 are usually for experienced developers that just picking up another language/tool.
The most important skill set that's missing even with university graduates, is solving the right problem the right way. So even if you are going for an undergrad program, Learnly will help you develop a strong base that you can build on in university too!
With Learnly, the goal is to first teach problem-solving and then how to express those solutions in code. Unlike other programs and courses, students at Learnly may not be writing their first line of code until a couple of weeks into the program. With problem-solving at the heart of the program, it is taught throughout the program: from being able to translate your thoughts into code, learning techniques to quickly pick up new programming languages, comparing multiple solutions, all the way to being able to pick the right technology to solve the problem at hand. You will also learn the necessary resource optimization skills that are usually skipped by online programs.
One of the biggest benefits of joining Learnly right now is that it's in pilot mode, so your progress is monitored by a human to make sure you are progressing well. You can schedule 1:1 sessions for anything that you don't understand. Your feedback will also help to shape Learnly for the future generation of problem solvers!
Thanks for reading.