"what he really liked was solving problems. The text of each chapter was just some advice about solving them. He said that as soon as he got a new textbook he'd immediately work out all the problems—to the slight annoyance of his teacher, since the class was supposed to work through the book gradually."
is literally me. I did that. Every year at my school I did exactly that. Once I actually turned in my solutions and my math teacher was quite upset because she didn't know what I'd do for the rest of the year in her class. She thought I was being arrogant and I should take in the material slowly, not swallow it all like a whale. But I wasn't arrogant or anything, because unfortunately this skill didn't transfer to the rest of my classes. I wasn't particularly good at history or physics or anything else, only math. Even now, I have tons of Schaums at my home. Like this one - http://www.amazon.com/Schaums-000-Solved-Problems-Calculus/d... I work problems in it just because it is a craving - I simply have to solve it. Sadly, society doesn't pay for this sort of addiction. I have been a professional programmer for the past 2 decades to pay the bills, but I secretly hate programming, debugging, programmers, git, the whole enterprise - just seems so stupid & futile. But hey, atleast I can spend my salary on Schaums.
Accusing people of being "arrogant" is a cheap way feel righteously indignant at the expense of someone smarter than you. I was fortunate enough to have some very nice teachers in grades 11-12, who complimented me on my intelligence and didn't try to take me down a notch for the sake of their own egos (nothing wrong with the teachers below grade 11, these issues just didn't come up as much at that time).
I studied mathematics as an undergrad, and later got into programming. Now I do machine learning as my job, and study dependently typed programming languages for fun. If you like mathematics I highly recommend Haskell and Idris (or Coq or Agda, but I found Idris them most approachable, as a programmer). In 50 years I think everyone will be using something dependently typed languages (or some other kind of language that is also fundamentally different to existing languages).
I literally did the opposite of this. I went so far as to make deals with my teachers that if I got an A on every test, I wouldn't have to do any work outside of class. Maybe I figured it to be a challenge, maybe I was plain lazy. Whatever it was, that didn't prepare me for college.
For me it always was about getting how the system works not the actual lesson. From that angle it is hard to be bad at anything at high-school level. Either you got it how school works and were good or you did not and were bad. For me there was no in-between and all the "people have different talents"-stuff. For me it was about a combination of people skills, short-term memory and keen perception.
I took it to the extreme though and optimized for the amount of free-time, which forced me to change schools.
> Maybe I figured it to be a challenge, maybe I was plain lazy. Whatever it was, that didn't prepare me for college.
Exactly this. I study CS, in the end I lack the discipline to force me to do stuff I am not interested in. Taking tests without visiting the classes and learning for 3 days does still work for smaller conceptual classes, for math or practical ones not so much. It is kind of childish, but I still need the "beating-the-system"-incentive to learn complex stuff. Math always sounds mildly interesting to me and I get the concepts quickly, but i lack the discipline to really internalize it for a few months, especially bottom-up. For me it is easier to come from the other side, for example digging through scikit-learn and learning the math after I already got the big picture.
I thought I was absolutely the worst person in the world at math. Turns out, crappy teachers and a teaching methodology that is diametrically opposed to one's optimal learning style count for a lot in school.
However what was amazing to me was how I went from zero confidence in my math skills to actually being excited about math when I took geometry. I never studied once in that class--just absorbed and immediately internalized what the teacher said. I could look at a proof and it just sort of visually made sense to me and clicked and I could step through it because of the pattern recognition. To this date I've never experienced anything intuitive in that fundamentally primal manner.
What has been great lately is Khan Academy and a growing interest in teaching myself software development has rekindled my interest in math. I also owe a huge debt of gratitude to Kalid @ BetterExplained.com (he frequents HN) for getting me past my fear that higher-level maths were beyond my capabilities. They weren't--I just needed to find a way of applying them in an intuitive manner that I could easily internalize vs. staring at equations and their definitions.
I wouldn't be surprised if I would have ended up as an engineer if I hadn't had such a poor experience with math when I was younger. I am pretty resentful of it. Fortunately I can take steps to change that, and I am.
I don't know if I made a difference in that regard, but it appeared to help bolster their confidence in themselves a little. Educators should do more to reinforce their students and help improve their passion. The state of our K-12 education system is horrid overall here in the US.
For example, picking a nice reference frame in simple mechanics problems is something that a physical intuition is good for. Same with spotting symmetries in an EM problem. Also, in physics you need to have a good grasp of what to ignore because they have only a small effect on the solution or because it operates on a different scale (fringing effects, transient solutions in ODEs), which often relies on a very hand-wavey type of reasoning.
Essentially, physical intuition often does not map to mathematical intuition
I have not taken enough math to actually speak for them; this is mostly gleaned from talking with math major friends and my own speculations.
These things helped me get by.
In my view, the starting point for physics is a deep curiosity about how things work. But I'm not sure that aspect of it is ever taught. Rather, it's assumed that good physics students arrive at college, having developed that instinct on their own as kids -- taking things apart, breaking things, asking questions, maybe having curious parents.
Instead, the emphasis in teaching physics is almost purely on the math. Certainly, what defines physics as a unique discipline is the interest in studying problems that lend themselves to mathematical analysis. Solving the textbook problems involves identifying the equations corresponding to the wording of the problem, then solving the equations. That's a skill, but it's not really physics.
I got through my physics courses on the strength of my math skills, but was extremely fortunate to have picked up the empirical half of physics on my own, through my hobbies, and from the curiosity about nature that my parents encouraged. But if someone lacks that background, I could see them being good at math, and maybe getting a good way through school physics, but never really getting physics as an end unto itself.
it wasn't enough to tell her "well it still gives us the valid results" - she had to be able to interpret every portion of an expression and then make intuitive sense of it.
at first i was annoyed with this habit of hers, but eventually i started doing it to. for a lot of really math-minded people, hand waviness is anathema, and physics was full of "2 + 2 = 5 for sufficiently large values of 2, so we'll just assume that to make things easier"
I recall that a physics chapter would start by "we take the Maxwell equations as [complex formulae]..." and for the life of me I wasn't able to understand them, or see where the teacher took that from.
On the other hand, maths seemed more logical, and even now - almost 15 years later - I can correctly recall my undergraduate maths classes, because I have them so well ingrained in me, because I could understand how various ideas connected to each other.
some of this is maybe inherent to the aim of physics, some of it is just physics machismo culture, and could be better, imo.
(i was a physics and math major at oregon.)
Math in physics (at least most of the physics I have done, which covers classical 19th century stuff mostly) is just a tool, if you can take a shortcut, take it! If you can approximate and cheat, do it! What matters in physics is the path from observation to modeling. Math is but a tool.
Now I agree that the math gets rather solid, but it's nothing compared to real math at an equivalent level.
I think my experience is particular because in France where I studied, you study both in parallel very intensively. So the math in physics always kind of seems trivial to you... But still my best physics teacher taught me that it was way more about the "feel and model" than the "exactly prove" that mathematics consists in.
Gosh I miss those days :)
Git seems like an evolutionary step tovards something more intuitive and efficient.
And yet, there is something to Devops Borat's quip that in 1990 entire Internet fits in head, but in 2012, just git no longer fits in head. (paraphrased)
On a related note, my high school had an Advanced Placement English class offered to students selected by previous semesters' English teachers. This option came with an unfortunate snag for all students enrolled in the French immersion track: both the AP English class and a required French class occupied the same period. We were frankly offered the choice to stick with the French immersion we'd been part of for more than 10 years (having started in kindergarten), or to convert to the English track by dropping all French-language classes entirely.
Yeah, the AP class that year was quite small with not a single person dropping the French track. It turns out that people enrolled in the French track are much more likely to land placement in AP English, as being fluent in more than one language steers a person into understanding and appreciating languages more than someone immersed in a single language. Such a ridiculous scheduling blunder by the administration; just the memory of not being part of that class more than 10 years ago makes me sad.
[1] Having grown up in North America where it is common to refer to mathematics as the singular "math", it is still weird to type "maths" even after having picked up the habit a few years ago.
Maths is also singular, it just ends with an S. (People who say "maths" say "maths is my favourite/worst subject", not "maths are")
> the whole enterprise - just seems so stupid & futile
Why do you think that? I'm a programmer (who enjoys the challenges of learning new languages (currently Elixir, which is sweeeeeet), coding maintainable code, as well as debugging) and don't think that. Sure, most if not all of my code "out there" is going to get thrown out before another decade passes, but what other job lets you create vast information machines using just your mind and fingertips?
Obvious answer: move to the next class. Repeat as desired.
Isn't it essentially a isomorphism of Schlep blindness?
Heard about research? As long as the problems you solved haven't already been solved as well by others, you can certainly make this your living.
There are plenty of activities I can enjoy, and some, quite a few of them in fact, are profitable.
Once you shoe-horn them into the power dynamic situation of a traditional job (with the bureaucracy that entails unless you're dealing with Actual People as opposed to corporations), suddenly a lot of the luster disappears.
As a ridiculous example - I enjoy reading. It's not really work at all, right?
Ask me to read 9am-5pm and I'd start to find it frustrating. Or add in a commute, or very low pay.
The actual job itself is very rarely the issue for me. It's what you miss out on, and also the fact that it invariably involves submission, acceptance of being subordinate, etc.
edit: To be clear here; I'm not talking about work ethic in the sense of 'pushing through something you find difficult'.
More the general idea of not wanting to be a part of a machine, a construct that you don't agree with. Large corporations and their 'policy documents', for example. I don't want to work for a company in which my boss doesn't have the autonomy to speak to me as a human being - this stands regardless of whether my job is backbreaking labour or eating chocolate bars.
Some people would probably call it 'entitlement', but I'm not really sure that's an accurate description.
As an employee, your role is essentially a permanent state of brown nosing. First of all you must convince a rich person/company that you are worthy. Then you must convince them that you want to work for them, that they're special, and so on. And then later, you must defer, every single day. Ill? According to policy document AED, page 5, section b, one of your eight sick days will be deducted, worker drone!
It's not enough to simply perform a valuable function for society. You need to be subservient and defer to authority - you are worth less than your betters (those with wealth) and must please them in order to eat, in order to shelter.
There are a few ways left in which you can directly serve other humans and profit via such - private entrepreneurial services such as window cleaning, antique dealing, etcetera - but these make up a small portion of the employment market today and are often subject to ridiculously overbearing regulation. The vast majority of 'jobs' in the Western world involve being directly, by rank, inferior to another human being.
Other people seem much more capable of dealing with this than I do. Often I find myself resenting others for putting up with the more ridiculous aspects - it feels like a betrayal, that if only people were better human beings and less likely to defer to authority we could all have a better experience.
This is the struggle I face, really. Physical trauma I find very simple - the emotional aspect of actively taking part in a system that I despise is much more difficult.
The thing is I guess they're both right! But now you know why you dont need to worry about why your coworker is grinning in the seat next to you. He/she is viewing the same circumstance very differently. Maybe over time your view can change to (mainly because you seem so unhappy with how it currently is)
I'm passionate about a few things, but none of them include being told what to do, then having someone take a large cut out of the value I produce.
Edit: I'm currently researching alternatives to traditional corporations, like worker owned cooperatives. If you or anyone reading this have ideas or want to talk, my emails in my profile.
To sound less arrogant I normally explain my dislike of employed working by arguing, that my work amasses capital for others, who receive interest on it, followed by a sermon about how people do not get exponential growth.
And if you possess that and still can't stand the status quo, you get to invent a new one: start your own thing, and do it your way.
I discovered very early on that I was incapable of working for other people, for numerous reasons. So I figured out how I could arrange my life so that I wouldn't have to ever work for someone else; and of course, there were trade-offs, but they were worth it.
For example, a lumber will chop down trees and sell them for $5000. He changes forest into logs. A house builder will buy those trees, and then take the money he has saved and pay someone to make the planks, another person to nail them, and another person to do all the other things needed to make a house. This person changes some wood and metal into a house.
He will then put this house on the market and someone will offer him $30,000. His total cost was $15,000 and by selling this house he has paid back what he invested and has an additional $15,000 he can reinvest.
This person made more money than you (the laborer) because he changed more things. He changed some wood and metal into a house, while you simply changed wood into a plank as directed by him. Sure, he hired you and 3 other guys who technically did all the work. But this is a situation where the sum is vastly more than the total of the parts. You were the cogs in his "house building system".
If you don't like where you are, figure out how you can change this world more so than how you are now.
An HNer who commented below said one other possibility is finding work you're overqualified for, which can be an option, too. This would allow you to do non-challenging work while being able to challenge yourself in other ways in your off time. If you combine this with working online, you may find it to be the solution to your woes. I often say, "I don't care what I do, per se, I care about what that work situation allows me to do" (in my off time, in how I control my time, in where and how I can live).
I finally had to leave corporate life for good. I discovered that what I do compulsively, other people compulsively avoid, and so I marketed it as my special skill. I also had to choose a field that encourages churn, so that I could be competitive as a freelancer. Eventually I found a job with an institution that gave me more autonomy than I would ever have in the corporate world. Ironically, my commercial skills have helped protect me from institutional politics. But I may get sucked in by ambition.
And?
Why is that bad?
I haven't thought of anything yet.
Left to my own devices, I'd probably spend 100 hours one week programming, then not touch a computer for two or three weeks, reading or building something or doing stuff outdoors instead. Lock me down to 40 hours every week, even weeks when I'm not in to it and would rather curl up on the couch for hours on end with some math books and a notebook or marathon-watch some Criterion movies or go camping with my family or whatever, and any fun I was having in those 40 hours will disappear fast.
It doesn't matter if the thing I'm clocking in to do is play video games of my choice and in the way that I choose, even—I'll be ready to not look at a video game for the next year within a matter of weeks.
That's not to say that I consider all work equally bad, but I'm probably not going to love anything at 40+ mandatory hours every week. The only way I can imagine enjoying that many hours on the clock is by splitting it between at least two very different things, like programming 4 hours/day then carrying heavy stuff at a construction site the next 4 hours, and even that might not do it over the long haul.
I crave the freedom you mention, and it's why I loved college so much. I'd spend a couple hours a day programming, a couple hours a day at classes and doing school work, a few hours hanging out with friends, some time reading, some time as parts of different organizations, some time at church, some time playing sports etc. and I loved it. To this day I think life is best lived like that.
However, I think it's hard to find a life like that in "the real world." I wish that would change.
Such a level of autonomy would be fantastic for a bunch of people (myself included!). The opposite extreme -- a continuous drudge of exactly 40 hours/week -- is pretty scary, because the work itself would have to be pretty mundane to be so predictably reliable. At some level, really creative and difficult problem-solving does have such burstiness built in.
But... one thing I've found in the process of matching "natural burstiness" with "externally-imposed stable output rate" is that sometimes, the drudgery is useful too. When I'm stuck in an unproductive state, continuing to do something helps to unstick me. Creative inspiration is sort of a positive feedback loop, where just taking a step (any step!) and trying something helps to fill me with ideas for next steps and alternatives. So I'm not exactly pleased about deadlines, or external pressure, but some pressure or goal (internally-imposed is best) is really helpful for me. There are still bursts and lulls but the lulls become more disciplined and useful somehow.
Of course, all of that is assuming that there's some interesting creative kernel to the work. If someone's complaining that 40 hours/week of CRUD apps is just not floating their boat... well... they've got deeper problems. :-)
For me it's not so much the absolute requirements (i.e. 8 hours a day, these specific hours, can't do anything else within that time) but rather the subordinate aspect of having no control over that. The way in which it's just the only option for seemingly _no reason_. It's totally arbitrary.
I'd love to work a job where I could say, choose three days a week to work (or alternatively have 100 days holiday, restricted to not allow huge stints off) and receive 60% of a reasonable salary.
Even better, though less realistic, would be an MMORPG-style job in which you could choose to put in 100 hours in week 1, 20 hours in week 2, etc and choose those hours whenever you wish.
Self employment comes close if you're not dealing with megacorps, but you still run into the problem that clients may not want you to just disappear for weeks at a time.
Relevant satire clip: https://www.youtube.com/watch?v=Bz2-49q6DOI
I heard this framed pretty well last night by someone who worked for a video ads company. "We don't look for people who are bursting with passion to work on mobile video advertising. If someone came to us and said that we'd think they were pretty crazy. What we do want is people who are interested in solving interesting technical problems, and mobile video advertising just happens to have a lot of those."
It's that for me, and I'd very much like to know how to handle it.
The very same task done 'just because I like to' turns from ecstatic moments of crazy productivity to total misery and physical feelings of sickness when it becomes a job or an obligation. And it's not even on a System2 level. I'd really like to like work. I just can't force my body and subconsciousness to like it.
It keeps dragging me down not only financially but emotionally. It's very destructive to my feeling of self-worth to see how given all the skills I acquired through 13 years of coding I still can't get myself to be productive at work, to get peanuts while during free time I'm mentoring inexperienced programmers who earn 3 times as much as me.
(not that I care that much about the money - but I have people depending on my support and it'd be nice to stop worrying about cashflow for at least a moment)
Coding gives you a lot of literacy beyond simply writing code to build systems; perhaps those skills could be applied in a slightly different direction, from SRE to teaching to writing a book (personally, writing's one of the things that turns into a chore when it's for money, but you might be different!).
In one of the economic courses I took, the Professor posed this very question. Apparently Karl Marx had also opined along these lines - how would a society incentivize someone who only likes to build sand castles ? He can't monetize the sandcastle because the waves wash them out, so he just builds another one & another one & so on.
Sometimes I think programming is like that. You write some code in some language & 5 years later write the same thing in some other language & then another 5 years later...I am pretty sure much of the Scala I write these days is simply something I've written in my early teens in QBasic. We're just building sandcastles that time will wash off.
Finish after your children leave school? Money -> childcare. Can't get time off to cook for yourself more? Money -> restaurant meals.
Small stuff. Office located in a stupid place like downtown, forcing _everyone_ into a silly commute. Lack of parking spaces.
What will endure?
I think the perception that it's "submission" is a framing problem. (s)He has his problems, you have yours. You probably don't want his. I have at times gotten way too close to being the boss; I don't want it unless it's a very narrow situation.
If it's actual submission, then I can't help you. I just don't last in those.
My boss gets my respect and dare I say - loyalty ( far as it goes ) - because I sympathize with the sort of insanity (s)he is likely dealing with. If you think of things as an opportunity to serve others, your own problems melt away, and you got to score a few points against the dread lord Entropy for the day.
"What can I do to help?" Even if it's ... ludicrous, Panglossian even, it's the best way to keep the stiff upper lip and make the best of the day.
I am thinking that Mr. Mark Twain had something to say on this subject... what was that book?.. ah, "Tom Sawyer". Something about a fence...
Unfortunately this was for a casual job alongside my undergrad (i.e. not enough to pay the bills in the real world).
Otherwise - 'The Boss' is not an actual person. They're not my manager, they're not the HR department. 'The Boss' is a nebulous set of policy documents. Or as you say, there's a boss above a boss above a boss, and no-one that can actually be reasoned with or respected.
One day perhaps I'll be lucky enough to work for a small company without these issues cropping up, but that's been my take on things so far.
But one of the main things with debugging is identifying the actual bug. Once the bug is identified the challenge is partly gone, or changes.
On a couple of teams I fell into the role of "team debugger", helping everyone with whatever was broken, and those have been my happiest times.
And before you go into you don't understand their constraints and so on, this applies to people who you fully well know their design and time constraints, yet still do the wrong thing while you haven't under the same constraints.
It's the whole 'hell is other people's code', and 'let's rewrite this piece of shit' tropes that programmers go through.
Bad management -> bad design decision and poor resource allocation -> blame those lower on the org chart than you -> pressure to "just get this fixed and out the door" -> high levels of technical debt and programmer "burn-out"
However, I think the only reason I was able to enjoy learning programming was because of how adept I already was with computers as a "power user", because it gave me the physical skills and conceptual underpinnings required to appreciate the field.
To me, this raises an important question.
If you lack the physical skills or are a novice in a field, it can be frustrating or intimidating to learn even if you would otherwise enjoy being competent. For example, learning to draw: should one accept their dislike of basic beginning drawing practice to imply that drawing is not an appropriate vocation for them? Difficult question; probably depends on the person. The only way to know if you love drawing at a competent level is to reach that level. In a sense it begs the question: how can you tell if you will enjoy doing something until you have the ability to actually do it?
I don't think there is an easy way to solve this problem; you simply have to put the effort into practicing new things even if you don't enjoy the practice. That's where you get into willpower, commitment, etc. My experience of the world is that you simply cannot expect to be successful by only doing things that don't feel like work; sometimes, you have to actually do the work.
My early education in programming followed a similar pattern, actually. I'd actively pick the brains of any teacher in high school who gave off even a hint of understanding programming or anything related. Once I'd learned everything about digital logic and did all I could on the broken Heathkit boards, my electronics teacher bought a computer for the electronics shop and let me take over his office just to get me to stop bothering him. I also resurrected a 2400 baud modem and hooked it into his local phone line. Actually, I didn't tell him about that, or the fact that I was hacking into the local university to have a poke around gopher space :P. I got some Motorola manuals, and wrote a book on assembly language programming, which I handed in at the end of the year instead of doing the regular assignments & exams.
There are many things to be passionate about. It's just a matter of identifying which ones resonate with you, and making the time.
This is 100% spot on. I came to programming in middle school with not much more than average knowledge of using a computer. I could fix the family's wifi, but had never touched a command line. So I had to learn all the underpinnings of a computer at the same time. I enjoyed both immensely, but at times it was tedious, and I had to push through that to get to the parts that I now really enjoy.
I know a lot of people that have quit, deciding coding wasn't for them, when they hit those tedious bits of understanding a file system and command line.
It's just like getting through the phase of learning an instrument where you have to struggle to remember chords and where notes are and build muscle memory. I don't think most musicians enjoy that part, they enjoy the creativity that comes after it.
I have had such a realisation few years back, which I neither was able to put into concrete words, nor did I take it seriously, until I have read yours.
Growing up, I used to love drawing as a child, but later I started to become indifferent towards it and my skill started waning leading me to wonder if I simply disliked it or was just not so good at it. Unbeknownst to me I started practicing in hopes of becoming good enough at it to be able to do better programmer art work for my games. I became reasonably good at it and only then was I able to reason out that my indifference was because programming interested and intrigued me far more than drawing ever had.
that was me when I picked up my first K&R book in elementary school. It was interesting and fun.
Yet I do it for a living, because building things is incredibly satisfying. Ya about 90% of the time I'm kind of bored, but actually finishing things (useful things!) makes it all worth it.
Interestingly I found that I have the same feeling in other endeavors. When I remodeled my house I found construction to be just incredibly dull. But man, the result was absolutely worth it. I don't know if I've ever felt more satisfied with anything.
A typical month, for me, has probably 5% exciting programming work. The rest is just tedious churn that you inevitably have to do to support the exciting bit.
Some programmers are engineers: they deal with the world as it is -- messy, inconsistent, evolved. They are good at debugging, because they are in tune with how things actually work (not how people SAY they work.) They like trying things before reading about them.
Some programmers are philosophers and mathematicians: they like to consider things from first principles, read a lot, and build up systems in their head. They make huge breakthroughs because they question fundamental assumptions. But sometimes they over-model things and ignore how the world actually works, in favor of "elegant" ideas. They may not like debugging because it is often dealing with other people's broken assumptions (i.e. legacy code), and not any real fundamental idea.
So PG clearly seems to have the philosophical bent and has made breakthroughs. But if he really likes debugging, then that means he comes at programming from BOTH the engineering and philosophical traditions, which probably explains why he's a great programmer. (I just stumbled across a copy of ANSI Common Lisp at work -- looking forward to seeing his style more closely.)
I think to be really good at something, you have to understand it in two different ways. Same goes for being able to write code from scratch (maker perspective) and being able to hack into it (breaker perspective).
Although, I have to say, there is a big difference between debugging your OWN code and other people's code. Not sure if anyone likes debugging typical enterprise code. :)
I'd bet PG is neither INTP or INTJ; he seems like ENTP. An introvert isn't going to start something like YC where you talk to hundreds of people, and manage hundreds of companies.
P vs J or perception vs. judgement doesn't quite characterize it either. I'm specifically talking about a way of approaching the work of programming. A big difference is that MBTI is supposed to apply to the entire population, where I'm just talking about programmers -- less than 1% of people. I think it's possible to describe/categorize the smaller group more accurately.
Yeah, I could share/blog/tweet (and I do, but not much) but often the things that are interesting later aren't things I share right away. Still trying to solve that problem.
Of course, for a lot of people uninterested in tech and programming, reading HN would seem like work. And, for many tech people, socializing also seems like work. So I guess it's a matter of what group you're comparing against.
I wish there were a way for startup founders to do what they love doing, and not what the VC/fundraising cycle tells them they should do.
If someone can solve that problem I'd be really really happy.
That said, I think startups will always be hard, for everybody, because no matter what you're good at, you will have to do a lot of other stuff to make them succeed. That's probably why the financial rewards for them are so high. Good partners can help at this, but maybe the sort of person who's naturally suited for a startup is simply "someone who likes to get good at a lot of different tasks".
He basically talks about how much he loves programming and problem solving, so when the company grew, he just hired people to do the parts of the CEO role that he didn't want to do.
"When I was in college I used to write papers for my friends. It was quite interesting to write a paper for a class I wasn't taking. Plus they were always so relieved."
Yikes. Really?
to be honest i think i only enjoy writing software about as much as the next person! can we be honest that it's an absurdly good job currently?
The "next person" completely dislikes it. Almost everybody with such twisted tastes as to like creating huge incomprehensible orders to machines is already a programmer.
(I have a bit of a thing for grating cheese - I find it strangely therapeutic.)
People always mention things like "I was working 15 hours a day", and here I am thinking - you were counting?"
I have a friend who will program all day. He spends all his time on Project Euler. He loves studying algorithms to understand them completely and trying to devise better algorithms. This is what he does in his free time. He does it all the time because he hasn't had a job in years. My friend is probably a much better programmer than I am but I have steady well paying work because sometimes I like programming and sometimes I like talking to people and the second part helps me work with clients and co-workers. My friend the obsessive programmer for whom it is always a hobby can't hold down a job for the life of him. I hope for his sake he finds something that can support him as well as fulfill him. But the advice pg presents in this article is so trite as to be useless.
I, too, hope that your friend is able to find a happy niche for himself.
I discovered early in my life that by changing the perspective of a problem you could transform something dull and tedious into something exciting and highly interesting.
For example , when I learned to visualize mathematical problems I become much better at solving them.
Mindmaps, and memory tools can make someone who struggle(and suffers as for example when he does not pass an exam) in something to fly around it.
I had a history teacher that went to wars in his youth as a news reporter, learned languages and traveled the world, studied history by correspondence(from a distance University), went back and settled with a young lady as a teacher.
History for us (the class he teached) changed forever. It was not about words on paper, but about real people, real places, interest and fights, and winners and losses, consequences. We saw photographs of the victims of the wars, some of them taked by him,the stories on how politics and decisions affected their lives and their families', other pics taken by his friends.
After that course, even with completely different teachers History was so easy to study, to remember.
About debugging. I believe the best programmer is the one who hates so much debugging that is able to work terribly hard in automating it and not have to debug EVER again.
People who loves debugging is a problem for me. I want things so well documented and well designed that debugging becomes almost non necessary.
The fact that people believe it is ok to have crappy documentation, crappy design, and spend months trying to catch problems(because they enjoy it) is a misfortune.
I like debugging, it can be incredibly satisfying.
What if acting doesn't feel like work? Playing soccer? Hiking? It's extremely difficult to make money doing these things. "Follow your folly" career advice can work, or it can just make people feel terrible because they realize they're doing things they don't love because they can't make money doing the things they do love.
If there's one thing I regret, it's not knowing about that something at a young age and letting it mold my life, decisions, and motivation. At 30 I've got nothing but a track record of jobs I hate.
When I was 9 or 10 years old, someone (may be my cousin or my fathers' uncle) gave me a book on simple electronics (it was in my native language). That was the first time I read about P-Type & N-Type materials and some other physics. It was so fascinated to me that I used to read it all the time to understand. The book also included about very simple digital logic design and concepts like NAND Gate etc.
I didn't understood at all what it is all about. But It developed my interest in Physics and Electronics.
By the age of 13 or 14 I learned myself about soldering, creating very simple chips and some LEDs on-off work. I never learned any math or could develop any mental model about true electronics but all that work created an infinite desire to know about the nature of "materials" & physics behind everything.
My parents put me in school which was 12 KM from my village, I used to bike every day 24 KM two way with some other friends no matter if it was summer with 43 degrees or winter with -2 degrees. And I was just 9 years old young kid. I started skipping school and start searching more books like that great Electronics books. I bought many but couldn't understand the foundations at all.
That same book had chapters how you can create a sequence of LEDs which keep going on & off one after other and make some interesting visual. I opened every electronic device at home and tried to understand its chips but couldn't get at all what is going on.
None of my friends studies beyond class 8 but I kept going. I started studying physics at the age of 15 at school but it was all so bookish and memorisation that I never liked school at all.
But I studied Physics, Biology & Chemistry myself and enjoyed every single moment of that time. That was the only time I studied Sciences and developed an intuition about the scientific world.
My parents took loan and sent me to a bigger city for my Bachelors degree. But the education was so artificial that I couldn't learn anything more at all. Every single book was in English (which is not my native or national language) I feel so empty & everything useless. At the same time my parents were sending me more money than they could afford.
I went into depression & at some point in my Bachelors' degree I found out about Internet & "Software". I started learning about Web Site development. I learned HTML, Adobe Dreamweaver & Fireworks. Then I learned a bit of C++ & C#. (I remember I started learning about C# in April 2002).
I got a job as a programmer in an off-shore office of a USA company. I then saved some money and escaped from that country and came to Sweden because of free education.
I studied Computer Science & developed an intense love with Mathematics (even though I'm not good in maths) & Programming Languages. Now I'm working as a Software Engineer but I have deep love with Electronics & Physics. And that all goes back to the days when I was reading that simple electronics book.
In software, I have deep interest and am decent at it. I can't say that for my electronics pursuits. I've been at it as a hobbyist for a few years now and am probably equivalent to someone 6 months into a Bachelors program. In the past, I tried to justify my electronics activities as something productive but a few weeks ago I had a minor Eureka - I just accepted I love electronics for the happiness that it gives me. I don't really care to invent something new or be productive with it.
For example, I always loved theatre and plays but I was told in young age that it's very hard to support comfortable life as a thespian (unless you are breakout success); so best not to take that as a career even though it may really work out for you.
For example- I knew from an early age that I liked tinkering around on computers. However when I got to college, I found programming monotonous and boring. When I worked as a software engineer for a large boring company I hated it even more. To the point that I actually quit and switched careers.
Then, a few years later I discovered Ruby on Rails and development on a new Mac. These seemingly small changes to a new environment rekindled my love of computers to a point that I spent nearly every weekend for three years teaching myself Rails. I remember one weekend I flew to a bachelor party in New Orleans and all the way there I read a book on Rails. It wasn't work anymore, but a hobby that I truly loved.
This is not to say that everyone is cut out to be or will enjoy being a programmer with just the right tools. However I think a lot of people take a first glance at something and give up on it without having a comprehensive understanding of the reality of doing the work in an ideal environment. To this day it annoys the hell out of me when non-technical friends ask me questions about coding as if it is some awful task that has to be done- "Why would you ever want to do that?" These people never actually have tried it so they don't know what is actually involved or whether they might actually enjoy it.
Completely agree. I came across similar thing 5 or 6 years back. When one-of my co-worker called me to debug/show a problem with his website-download module to export data as spreadsheet. The data came as some junk characters,even though site-page shows proper data and db-records are fine too.
I clearly remember the following conversion.When I tried, I also got spreadsheet with unreadable chars, and I said, "nice,that's interesting!!" and my co-worker laughed and responded "what? is this interesting???"
How do you separate hobby from a potential work/job?
One of the best articles for understanding how loving your work is possible.
For me, I can get frustrated when I'm coding and can't figure out a bug right away. But on the other hand there's nothing I enjoy more than spending N time trying to understand what's going on, solving the problem, and feeling a spurt of elation at succeeding at my task. I'm not sure how people who don't see it the same way could handle that kind of work.
With that said, I do think there are areas where even if you don't initially enjoy the activity, you can come to appreciate it and eventually enjoy it.
Oh, and trading I love trading. All kinds of trading. I've spent many many nights trading items in various games. Oh, and programming a bitcoin arbitrage trading bot was super fun.
Hmm, it was good thinking these things over I guess.
I don't mind writing. I don't mind public speaking. I don't mind grappling with tough problems. I don't mind working alone. I don't mind being indoors.
I do mind physical labor. I do mind cold calling. I do mind having to worry a lot about people's feelings.
If you have different preferences from mine, then you probably should also be in a different line work.
If you do know of something which doesn't feel like work to you, but does feel like work to everybody else, there's indeed probably something there. But if you don't, it may be possible to create such a something...
Building mechanisms of course implies some core problem (i.e. how to model what you need to solve and how to compute the result) and interfacing (how to run that thing at all in a physical computing environment and how to talk to all the other), but those don't raise up as major appeals. One or both can even be trivial and I don't get bored yet.
The play of ideas and experience and using those to build something that works is highly enticing. So, the more I gain experience, the more rewarding programming has become, which in turn gives me more ideas that I try out or problems that I try to solve, which accumulates the experience, and so on.
The most boring part of programming is often interfacing. This means anything from negotiating with other people/teams to learning obscure one-off APIs just to get the juicy bits running.
The actual problem (think in terms of maths or CS) can sometimes be interesting but not necessarily per se. Rather, a tricky problem can serve as an excuse to build a very complex or advanced mechanism.
Debugging is just pure fun. It's like trying to find out that slightly loose part in the transmission of a car that sometimes makes the 2nd gear a bit difficult to engage. Debugging happens when the mechanism is mostly built but not yet completed. You can almost see it working, sans a few problems that you know are there. It's hard to imagine sources of greater motivation and mental satisfaction than debugging.
When I was an undergraduate, a lot of my peers who didn't have a similar CS background struggled. I experienced this myself when I transferred into the mathematics program. I never had a serious engagement with mathematics until I was in university.
I think reaching the stage where an activity becomes natural requires a serious personal engagement. That is, you have understand the questions which guide the activity (your interests have to align) and you have to have the freedom to ask and answer your own questions (being able to solve your own problems). The activity has to become personal in some sense.
I also really enjoy the process of understanding things in general - figuring out the important/disparate parts, determining how they link together, exploring connections, etc. Once I understand something all of the possibilities hidden in that topic are open to me and my creativity.
But I'm terrible at taking time to create things. Once I have the solution it is very difficult to find the drive to actually continue and build on it. It's always a slog, as if I were a kid being forced to eat vegetables. I think I'm slowly improving, though.
I built electronic parts for Westinghouse's Nuclear Reactor Simulators (near Monroeville PA) in the mid 1980's. There were a ton of intelligent people working there and since every reactor built had to have an identical training simulator, there was quite a bit of knowledge required to make the systems realistic. Sometimes simulating the required behavior of a nuclear reactor was more complex than what occurred in the real reactor (simulating the pulse shape and randomness of a Geiger counter or driving a synchroscope with hopped up audio amplifiers).
In any case, those guys provided a lot of on-the-job education for a young engineer ... thank your dad for me as I might not have interacted with him, but surely some other "youngster" did.
Recently I thought, I have to do something with this and I started a Drupal system for searching locally cultured vegetables for sale. It was fun in the beginning but my wife is a designer and pretty soon I was editing CSS all the time and I completely lost interest. It felt like work. I left it in an ugly, unusable state.
Still, I keep setting up servers with the occasional blog with some articles if my attention span allows it. Who knows what I might do with it some time. I have this vague vision of setting up a web services company with CMSs for sportsclubs but that will come with paper work and I know I will regret it. I have a nice job as a biophysicist by the way and I get to play with large Linux clusters from time to time and I try to take those chances as much as possible.
Some things just start feeling like work as soon as they become work, as soon as there are any milestones to catch or things to finish. To me things feel like work if I can't just quite half way into a "project".
People hate programming when they do it with 1000 other colleagues. The same programming is rewarding when they do it alone - since, that lets them do things that no one in the world is doing.
That may be true for startups in general. Doing startups seem cool since only a handful (<10%) of total population is doing it. If everyone starts doing it, it may not be as cool.
Even the artificial deadlines can be fun, though there is a definite cost to working an 80 hour week.
Most days are like playing, really. Sometimes you have to come into work and push a pencil, but hopefully those are rare.
Further, working with others who are passionate about what they do produces one of the most wonderful pleasures in life, as it blends deep community/social bonds while plugging into life!
Creating useful things, or something that is fun to do.
Making something come to life, a product, a character, a moment, that people use or enjoy experiencing.
It could be in programming, art, a system, a product, something digital, something physical, anything useful that removes part of the monotony of life, reduces drag, and improves the thrust of life.
To me a comic strip, a rocket ship, a new game, a system that takes away boring tedious parts of life, quality of life improvements, and anything helpful to make the day more of an adventure, are all on the same plane.
Odd. I barely do any debugging at all. If it compiles, it's usually right, and when it's not, I just kick back and think. Thinking takes a lot more of my time than writing or debugging. Perhaps that's because I work largely by myself on those components - there is no one else's intent to grasp.
Not sure where this is going, but imagine something like the first public musician. Or the first ever commissioned artist. It must've been valuable, because someone funded them to make it happen.
http://books.google.com/books/about/Problem_book_in_high_sch...
Getting paid for it is difficult. Arguably one has to become extremely good at a particular skill which is in demand and be able to promote himself.
But thinking of it after reading the last part of the article i realized that i actually find that debugging is quite fun, i have never really thought of it until now.
Sorry, did Paul just say that he helped people cheat in their college classes? Or did the professors know he was writing others' papers?
One of them for example: if I like a song in a foreign language I'm learning, I will look up the lyrics and try to translate it by carefully analyzing each sentence and using lots of dictionaries and Google searches (sometimes asking on Forums or asking native speakers in person). It takes anywhere from hours to days. It might seem to most people that this requires discipline and tenacity, but when I do it I just do it for fun.
I'm not so sure though that I would enjoy it the same way if I had to do that kind of work for a living.
I hate debugging (and more generally "diagnostic reasoning" in general... also went through med school long time ago), that I've actually become a "language geek", researching language after language and programming pattern after pattern in order to find strategies to reduce as much as possible the debugging work that I have to do. I've learned Lisp. I've started learning Haskell. Rust is on my "to learn" list now too. And my absolute hate for debugging work makes me research new things every day in the search for that nirvana where code that compiles always works and where you don't have to work 5x as hard to please the compiler either...