Half-Baked CS Graduates
Being a half-baked Computer Science graduate is quite common. In fact, it is expected that you will be half-baked.
It is a disservice what universities are doing to students. Selling them big dreams about becoming software engineers and computer science professionals, only to bombard them with outdated and useless content.
I can speak from my experience at Strathmore University, where we would have 6 hours a day of classes that taught theoretical concepts with theoretical assignments and very little practical and real-world applications. This is not to say that we didn’t do projects, we had projects for each unit. The problem was that most of these projects lacked practical uses.
I have been in the tech industry for 2 years now and I have worked at Impact Africa Network, which is a startup studio that empowers young Africans to participate in the digital transformation of Africa.
One crucial thing I have learnt is that software is only useful if it solves someone’s problem. The only way to know if it solves their problem is if they actually use it.
The Problem
The metric of project success at universities is how technical your project is. Your industry-aloof lecturers will tell you to develop machine learning models, blockchain applications and mobile apps that excite a crowd. They will tell you how amazing that idea is and give you high marks for it. This is all vanity. 99.99% of those projects will remain GitHub repos and project documentation that are stuffed in a basement, never to see the light of day. There is a gold-mine of great projects in universities but we will never know because they never got to face the ultimate test: usage by real users in the real world.
We need to change our mindset and realise that the ultimate end of all software is to be used by real users to solve real problems. The only way is to put the product in the hands of the users you seek.
The real metric of project success is real users using the project.
The Solution
My proposal is simple, cut all the bullshit units and reduce all the assignments. There should only be one assignment: Come out of university with a real product with real users and real revenue.
The first 2 years can be for theoretical concepts and assignment to introduce students to the world of software. The next 2 years are about solving a problem using software. In this process, students and the lecturers will learn that building software is the least of their worries. Building a product that solves a real problem requires market research, talking to users, narrowing on the most optimal solution, finding the right talent, raising capital, implementing a robust go-to-market, sales and so on. Writing software is just 5% of the work that goes into building a product.
Some of these universities will say that Computer Science is not about teaching product development, go-to-market and all the things around building software. To be fair, universities do a poor job of teaching Computer Science and software development. Even the thing you claim to teach is subpar at best. Most of what your students will learn will not be used or never fully internalised until they implement them in a product team a couple of years after graduation. Instead of just laying down content, provide an appropriate environment to apply the content that has been put across.
My proposal will ensure that nothing is repeated from one unit to the next. If you give your students 2 years to build a project, you can structure your units to tackle the critical parts of the product development cycle. For example:
- Each product starts by understanding the problem, that’s one unit.
- Next, you have to gather a team to solve the problem, that’s one unit.
- Next, you have to interview users, that’s one unit.
- Next, you have to design the solution, that’s another unit.
- Next, you have to develop the solution, that’s another one.
- Next, you have to test the solution functionality, that’s another one.
- Next, you have to host the solution, that’s another one
- Next, you have to test usability with users, that’s another one
- Next, you have to harden the security of the solution, that’s another one
- Next, you have to monetise the solution, that’s another one
- Next, you have to document the solution, that’s another one
- Next, you have to pitch the solution to stakeholders and investors, that’s another one
- Next, you have to market your solution to more users, that’s another one
- Next, you have to ensure scalability of the solution, that’s another one
- Next, you have to understand the usage of your solution, that’s another one
- Next, you have to support your users to use the solution, that’s another one
There is so much that universities are leaving on the table by teaching isolated units that have no connection to one another. Having a standard project to tackle all these concepts will solidify what it means to build software and to work in the tech industry.
Concerns with the Solution
Sure, some projects will probably need to pivot, others will fail and others will get hacked. That’s just part of the process. What could also happen is that others will soar beyond your wildest dreams. Billionaires will be minted from your universities and traced back to your programme. You can easily capture some of that value by being pre-seed investors in these projects and cultivate their growth.
Don’t do those draconian things of sueing your students when their projects become successful. That’s a no-no. It will hinder innovation as your most brilliant students will decide to build their best ideas in private or at some incubator. You want them to trust that you will support them, fund them, market them and win with them. I am very sure that if you provide such support and state clear equity-share based on investment provided, students will be willing to jump on that.
In fact, I purposefully built a generic project instead of submitting Agrarian, an agritech solution using IoT to collect and analyse farm data for users. To be fair, it wasn’t mine because it was a team-effort of students building something under a club called Enactus.
Conclusion
Universities are oblivious to the goldmine that they sit on. They have young people with a thirst for knowledge and a hunger to create change. They are not corrupted by the harsh nature of the outside world, making them open to seeing the world for what it could be and not what it is. Don’t be part of the problem by crashing their dreams. There is a reason why universities like Stanford, Harvard and MIT have produced so many changemakers like Bill Gates, Mark Zuckerberg and so on. They didn’t ignore their students or crash their dreams, they embraced them and made them believe that it is possible to change the world with an idea. The catch is that you have build it. As a society, we need this mindset urgently. All we need to do is champion it and universities are best positioned to make this happen.