Off-Topic: Should I Go to College?
I don’t know if it was a coincidence, but today I got an email asking for my opinion on this topic at the same time that Paulino Michelazzo blogged about something similar.
The short answer? When in doubt, go. Okay, let’s get to the longer answer.

Today’s Colleges
Like Paulino, most people have the sense that college “doesn’t prepare students for the job market.” Others say exactly the opposite: that the problem is colleges focusing only on the job market and neglecting the academic side.
For me there are two types of college. The first are the traditional, serious ones, like the federal universities and a few state ones: USP, Unicamp, UFRJ, ITA. These are seen as the ones that “don’t prepare students for the real job market.”
The second type are the commercial ones, with their fast-food two-year degrees or less, instant diplomas, do-two-courses-in-one deals. I won’t name names because they’re obvious. These are seen as the ones that “focus, barely, on the job market.”
A college’s goal should be much bigger than preparing someone for “the job market.” It’s the final stage of the formal educational process that starts in grade school and prepares a person “for life.” Preparing them to grow on their own, to value self-knowledge, respect for others, civic duty. Building a taste for discovery, for rational and independent thought, for systematic trial and error in the name of continuous improvement. Over more than ten formal years, the system should teach students to think and act on their own, aware of their own actions, with the scientific method above all.
Instead, students leave the educational system with a different proposition: I’ll do whatever I’m told to do, everything I’m told is true and needs no verification, and everything I’ve learned so far is enough to consider myself a good professional. In short, the student leaves college with their values completely corrupted. Half the blame goes to the system, the other half I place on the student, because I went through the same system myself.
The colleges considered top-tier, like USP, still have a more academic scope, and therefore a more experimental, more challenging, and more interesting one. If the student is willing, that can genuinely open doors. Students at these schools have more time, usually more purchasing power, and, with the right mindset, access to professors and material with far more depth. I’m generalizing: not all professors are good, not all students are engaged. But that’s not the norm there.
Commercial colleges have a single objective: being diploma factories. They present, in an absolutely superficial and disposable way, all the technical terms and basic procedures that entry-level jobs tend to ask for. They’re pieces of a cruel puzzle whose only goal is to trivialize education and the craft. Again, I’m generalizing: good professors and well-meaning people exist. They’re just not the norm.
The traditional educational system as a whole is built on dogmatization far more than on actual learning. Through the end of high school, every student is a memorization machine. Commercial colleges keep the same rhythm: memorize, take the tests, get a diploma. Simple, easy, no effort (I repeat: no effort).

My Experience
I’ve told this story before. About six years ago I decided to try a certain renowned commercial college, just for kicks. I scheduled the entrance exam for a Saturday, spent the previous Friday night hopping through three or four clubs with no sleep at all, and took the test literally still in post-club mode. I finished in half an hour, because it was absolutely trivial, and obviously passed. Let’s just say this college’s name is recognized by every company in the market.
It was so frustrating that I decided I wasn’t going to waste my time somewhere that easy to get into. I didn’t even bother to enroll.
Fifteen years ago I took the entrance exams for Fuvest, Unicamp, and Fatec, only those three, and passed all three. It was much harder: a full year at the same frantic pace of study, at least ten hours every day, weekends and holidays included. Thousands of exercises and practice tests, and even then I didn’t reach the top of the list.

Spending some time at USP was a great experience, even though I dropped out three years in. My reasons are personal and apply only to me, which is why I say I don’t recommend anyone copy me. I left because I was certain I could learn the rest of the curriculum on my own, and faster. But don’t get me wrong: I never thought what I was learning was unimportant. I had already been a programmer for at least five years. The first years at USP massively accelerated what I already knew and helped me take much bigger steps.
Even though I was at IME (Institute of Mathematics and Statistics), my best friends back then were electrical engineering students at Politécnica. That’s the crowd that taught me Unix: guys who played with assembler over lunch, did computer graphics in their spare time, and still had time to design microprocessors before dinner. I watched Java, Delphi, HTML, and JavaScript being born alongside those people. And I had broadband internet access fifteen years ago, thanks to the university.
That crowd left a strong impression on me: students only a year or two older than me who seemed to have ten more years of experience.
Talent and Effort
For me, college was extremely valuable and a hugely important step toward who I am today. I didn’t finish by choice. Now comes the hard part: software development is not a repeatable manual craft. Like advertising, music, literature, medicine, architecture, and every great profession, it demands innate talent. Nobody learns to be a great musician: you’re born with the talent and learn to refine it. You don’t learn to be Da Vinci, or Mozart, or Niemeyer, or Villa Lobos. Either you’re born Da Vinci or you aren’t. Sure, you can always learn the techniques, but you won’t get very far.
College won’t make you a talented person; at best it helps shape your talent. Many people discover in college that they’re on the wrong path, and many only find out much later. Unfortunately that’s common. Some people are aware they still don’t know what they want. Worse: many don’t even know that they don’t know yet.

Something else that matters: a talented person is never satisfied with what the system hands them, with what college or some course teaches. They always want more, much more. People like a Linus Torvalds, who creates a kernel from scratch. Like a Miguel de Icaza, who creates platforms from scratch. Like a Joe Armstrong, who challenges the status quo and creates a language like Erlang; like a Damien Katz, who creates different ways of handling old problems like databases, creating CouchDBs. People like Don Chamberlin and Raymond Boyce, who created the original SQL. People like Alonzo Church, who went deeper into mathematical disciplines like lambda calculus and opened up new forms of programming. People like John von Neumann, who literally laid the first brick in the foundation of computing.
Education is much more than learning a micro-trade, a series of mechanized tasks that can be repeated. There’s a place for that kind of work, sure. But if you’re reading this article, we’re definitely not talking about painting walls or stacking bricks.
Many of the best programmers were already programmers before college. It’s not a requirement, but it’s common, especially nowadays, for the urge to program to show up well before entrance exams. That makes things easier, because there are fewer doubts. In that case, invest as much as you can in the talent you believe you have and get into a college capable of shaping what you know.
The biggest mistake I see is great potential entering bad colleges just to grab a diploma. They believe they’re already good (they aren’t yet, they only have potential) and that therefore they don’t need college. That’s two mistakes. The first: a bad college makes you waste time chasing a diploma with no value at all. I personally don’t hire anyone based on a diploma, and neither does anyone truly serious who values knowledge.

The second mistake is reducing software development (including web development) to a mere set of specific pieces of knowledge. Thinking that knowing JavaScript, HTML, Linux, Apache adds up to a sufficient collection. Think about the painter again: a great painter either knows how to paint the whole work or doesn’t know how to paint at all. A good chef either knows how to make every dish or none. A musician either knows how to compose a complete piece or nothing. There’s no knowing the pieces, however well, and thinking you know enough.
The Worker and the Artist
That mistake is fatal, because the individual will readily believe they know enough and give little or no attention to everything else. Software development is an art like any other. You’ll never be perfect in all of its aspects, and the peculiarity of all these creative fields is precisely that they prize the “pursuit of perfection.” What counts is the rung above the one you’ll be on tomorrow, and the wisdom that this ladder has no end. What matters is the journey, and the journey in pursuit of perfection is the engine of continuous improvement.
As they said of Socrates: “the more I learn, the less I know.” Stop for a moment and think about that again: most of us forget this principle. Diplomas and certificates do harm precisely because they discourage the long-term journey in exchange for false short-term trophies.
You think you really don’t need college? Do you know probability and statistics? Because without them you can’t build the most advanced anti-spam and anti-virus mechanisms. Think you understand linear algebra and calculus? Without them you’ll never create anything in computer graphics. Do you really think you understand algebra? Without it you’ll never grasp how cryptography mechanisms work. Did you actually learn boolean logic? Without it you don’t understand the foundation of modern computing. Think quantum physics is irrelevant? Without it you can’t even begin to imagine the possibilities of future quantum computing. Before the cynics take this too literally: I’m not asking for expertise in any of these areas, and I don’t have it myself. But I know where to look to solve each problem involving each of them.
Plenty of people find all of this very irrelevant. After all, why would a programmer need to know all this nonsense to be a mere “form coder”? The thing is, in the end, the bulk of “the job market” is building forms: forms in Visual Basic, forms in HTML, it’s all forms. For that I don’t need Da Vinci; a house painter will do.
If your purpose as a “programmer” stops there, this article ends here and I’m wasting my time. I build forms too, but I’m not content with that and I keep inventing different ways to build them. A Da Vinci doesn’t choose or plan when or how his Mona Lisa will come out. It’s the result of a long, laborious, difficult journey. The Mona Lisa began to be painted in 1503, he put the final touches on it until shortly before his death, around 1519, and that journey took him from Italy to France in 1516. It only started becoming truly famous in the mid-19th century. He made hundreds of other paintings along the way, some better known, some ignored.
On top of that, knowing every aspect of the profession makes even the task of “coding forms” more interesting. A mediocre coder will code forms the same way for the rest of his life. A good programmer always looks for different approaches, experiments with new techniques, refines the ones he already knows, exactly as they did in the Renaissance. That’s where the whole school of software architecture came from, the best practices, the best architectures, the entire process and discipline later taught as rote memorization to the mediocre.
Data structures, basic algorithms, relational databases, compilers, assemblers, operating systems, protocols: these are all disciplines that should be considered trivial. The challenge lies elsewhere. For an artist it’s the same as knowing how to hold a brush or handle a piano’s keys: what makes the difference is how you use them. That takes talent, that takes experience. Even the most talented person will need years of practical experimentation, thousands of hours of practice, trial and error, refinement, before reaching expert status. A good programmer should aspire to become a polymath.
By polymath I mean knowing programming, some administration, some marketing, general culture, communication, and various other areas that add to your main craft. The current “social networks” craze makes much more sense once you become familiar with the work of scholars like Albert-László Barabási on scale-free networks, a discipline that didn’t originate in computing but precisely explains the evolution of this kind of natural formation. For those leaning toward a management career, understanding Frederick Taylor gives you another perspective. More “modern” topics like agility or lean make much more sense after you’ve seen the work of others like W. Edwards Deming or Taiichi Ohno.
My point: you won’t pull anything useful out of your own head alone. Forget that idea. You only sharpen what you know, at genuinely high speed, by standing on the shoulders of giants. In my case, I think I just absorbed that insight and consciously changed my attitude by going through college, in an environment that let me experience my own smallness before decades of cultural and academic evolution. You need to feel like a dwarf in order to pursue surpassing giants.
Today’s traditional and commercial environments of teaching and work are unfortunately terrible places for that, I’d say the worst in the world. In them you live the illusion of achieving more without pushing for more, in a predatory environment that rewards the fast and the superficial. Fast-food culture is completely hostile to the concept of continuous improvement, which by definition depends on time and disciplined effort. Today everyone wants a short college that’s easy to get into, easy to pass, preferably cheap and low-effort. Courses and certificates follow the same path: in no time you get to call yourself a “sage” in some field. Instead of a meritocratic environment that values learning and wisdom, we have an opportunistic one that values smallness, minimal effort, and low culture.
A Recipe?
With all of that:
If you’re still of school age, in high school, do everything you can to figure out what you think you like. You’ll rarely be certain, but you need to try.
If you’re past school age and still don’t know what you want to do, I’m sorry: few people leave that condition for a position of distinction. Rare isn’t impossible, but in that case understand that you’ll need to work much harder than average, much harder than most naturally talented people. It will literally cut to the bone, it will hurt, and there’s no guarantee of any return.
If you know what you want, go for it. But really go. Understand that the journey is long and has no end, that you’ll never reach the top, and that there will always be many people above you, with the aggravating detail that they keep climbing fast. The reward: if you engage with the journey, you’ll never have to separate work from fun. Let others decide whether what you’re doing is work.
Now the most complicated part of the equation: few people have the conditions for any of this. Most aren’t just opportunists; they’re in a situation of real financial distress, sometimes with even graver family problems. It’s that terrible situation of having to choose between what you want and what others want, where either choice will be a bad one.
I have no magic solution for that, nor do I have that life experience. But I know up close, in detail, cases of people who managed to escape the negative cycle and became far more successful than me. There’s a price: it will hurt. No great reward comes for free. No great value comes in the short term.
What I see most are people wasting a lot of time feeling sorry for themselves. I hate that type, acting like the victim of everything: the system is to blame, the company, the parents, everybody but themselves. There are always people in much worse situations than yours. Never assume you’ve hit rock bottom, because you have no idea how deep that pit goes. And if you’re here reading this blog, I can assure you that you’re very far from that bottom, so you have no excuse.
The old saying still holds: “no pain, no gain.” The important thing is not to be a conformist. Most people who criticize me when I say these things start from the wrong premise: they separate what is work from what isn’t. That person already is a conformist: they’ve already accepted that their job is something they don’t want to take home. And I’m not talking about taking paperwork home to do at midnight. I mean the journey, the mindset, the thinking, the reflection. What’s the right balance? Each person knows their own.
Outliers
As Malcolm Gladwell tells it in his recent Outliers, the Beatles went to Hamburg five times between 1960 and 1962. They played eight hours a night, seven days a week, trying to win over an audience that didn’t speak their language and was more interested in the strippers. That was 270 nights in Hamburg. When “I Want to Hold Your Hand” finally broke in America in January 1964, the Beatles had already performed some 1,200 times. That’s far more experience than most new artists accumulate in a lifetime.
You don’t need to become the Beatles; that’s nearly impossible. Nor a Bill Gates, a Steve Jobs, a Ray Kroc, a Henry Ford. It makes no sense to try to imitate them, follow their footsteps, take the same courses, do the same things, wear the same clothes. It’s futile and it gets you nowhere: a biography comes nowhere near being a recipe for success. You need to absorb what drove them to the journey, not what they did during it.
What they all have in common is talent, a lot of hard work, and a lot of experience. Mozart started composing at six, but it was only after his twenties that he finally composed a work of art: more than ten thousand hours of practice later.
So I return to the question: “Is college worth it?” Certainly, if it’s a good college, with the intent of sharpening what you know and learning more. Very much worth it, as long as you understand that college is only a fraction of your journey of at least ten years of learning before you can finally say you know something.
My journey in computing began timidly in 1986 and picked up steam from 1989. My “formal” résumé starts around 1997. I’m still very much a novice in many areas I’d like to know more about. My journey has barely begun. Don’t think yours is already over.
Do You Need a College?
After all of that, you don’t expect an easy answer, do you? :-)
To be mediocre, by definition doing what everyone else does, yes: you’ll definitely need a college, any college, grab your diploma, and be just another one in a crowd of millions. Good luck, you’ll need it.
To be above average, the only path worth taking, it depends. If you think you can learn everything on your own, that works too. I know several cases like that, of extraordinary people who never went to college (or went to a bad one, just for appearances, without letting it influence them) and who know every aspect of the field. Understand: knowledge is not a secret. There’s nothing you’ll only see after opening some secret door inside a college. All the information is out there. It’s up to you to decide whether you’ll go after all of it on your own. If you don’t think you will, go to college, but a decent one, not one of these disposable commercial operations on every corner. I think it’s worth it.
But if the question you really wanted to ask was “Is college decisive for a successful career?”, then the answer is no. Success depends solely and exclusively on the individual. If you succeed, the credit is all yours; if you fail, the blame belongs to no one else either. And once more, for the cynics (whom for some reason I suspect are intelligent and love pulling things out of context): no, nothing I said here is new. I’m just repeating what should already be common sense.




