Dell's origin story follows this idea. Many consumers don't enjoy building their own computer, Dell enjoyed building your computer for you at a fair price.
Ugh I hate stuff like this. Sometimes programming feels like work, sometimes it doesn't. I write, I make art. A lot of people wouldn't consider either of those real work. Yet sometimes each activity feels like work, other times the activity feels great and feels like something I could do forever uninterupted. Virtually all of the time you find something you enjoy, even if someone else thinks it's work, there will be parts of making it a career that will definitely be work (e.g. programming is always fun but maybe corresponding with your boss isn't).
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.
It seems to me that the essay tried to answer the question "What is it that you want to have as your career". Now, whether you can actually make that your career is an entirely different question. I might love playing tennis, but if I'm 30 years old. There is no chance I could start now and become a professional player.
Not particularly a PG fan, but I think that ("trite/useless") might be a bit harsh. If trite means obvious, well, that sort of thing wasn't obvious to me early in my career, and even now after decades, it's hard to keep advice like this firmly in mind.
I, too, hope that your friend is able to find a happy niche for himself.
Personally, I experienced this with programming. When I learned to program in high school, it never struck me as a chore; it was always just interesting and I enjoyed it.
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.
It probably depends on the type of programming and the challenge it presents.
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.
The times when I've gotten the ratio that high have been times when I've been learning new skills while building new things. There's something to be said to building something using that new cool new framework. Its got to still be relevant but this can definitely help. There are many right ways to solve most problems and some are more fun.
Maybe you just need to work on something you actually care about. There are a lot of hard and interesting problems which need programmers working on them, but boredom is understandable if you are just churning out the one-million-and-oneth generic web app.
In addition to topical interest, this is exactly how I feel when I don't own something and don't have responsibilities.
At my last job, I was brought on into a role of leadership and immediately had all of it usurped by my boss (formerly doing my responsibilities) upon my first couple of this-is-unexplored-territory-so-I-stepped-on-a-rake mistakes. Looking back, I was checked out by April (and I started in February).
"Checking out" for me is hard to see until I'm not checked-out anymore. I can't even feel it in the moment, because I still like to argue and I still want to do capital-R Right, but my brain stopped really working for a while. My mental health followed. What few good projects I did and was proud of felt more like the work of other people (even though in retrospect I more than carried my weight) or were things I built out of spite to prove that, no, I really did know what I was talking about, jerks.
Of course, they're not jerks, and I'm friends or friendly with even the folks in my management chain now that I no longer work there. (Getting a 50% raise to leave didn't hurt.) But I can't be a meat puppet, it's not in my nature, and I feel like that's the case for most of the really really good programmers I know.
I'm a programmer and I completely agree. When everything was new it was fun and exciting. I started programming seriously when I was 12 years old. By the time I was in college programming was an absolute chore.
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.
thats a powerful talent to have; although there is the danger it can lead you down the wrong path
personally, if I find something dull for a longer amount of time, there is no way I could push through it; luckily, in programming, if something is dull, you either don't have the creative freedom you need, or you have chosen the wrong abstractions (which leads to the fun task of looking for better ones :-))
Everything new is interesting to me, that's the problem. I like building things too. So I'll think I need to make a go of being a programmer. Then two weeks later I'll doubt that and think, maybe I should be a builder / real estate developer? Pretty much everything interests me when it's new and challenging, but I'm not interested in being a master of anything.
FYI the 'it can be learned because I have the requisite context' zone is well discussed in formal education circles. Curiosity and self-confidence: that's harder to teach, harder to maintain, harder to quantify.
Ira Glass has some advice on the issue of when you start something you enjoy, but your skill doesn't match your taste. Push through and keep practicing until your skill matches your taste.
I don't think the problem is things you enjoy but don't have skill to match your taste, the issue is identifying things you would enjoy if you had more skill, so you know where it is worth investing the effort to get over the lack of current skill.
Thats a good point. I suppose you could use your taste as a guide to what you may be good at. But, like you said, there is that gap between investing the time and discovering if you are skilled at it.
I'd argue that sometimes you don't really know what good taste is or whether or not you would enjoy something until you've acquired a certain level of competency for it. Sports, programming and math are all like this. The more you work on them the more enjoyable they become, and you'd become a lot more "tasteful".
Programming, maths & science, etc. are acquired tastes. Not things you can enjoy from the get-go. I think many friends and family of mine would make far better programmers than I, or great scientists, but they've never had the need to venture out of their comfort zone to try something new. The age of constant distractions and an easy lifestyle is not conducive to breaking out of the norm.
The things I enjoy most took me years of studying.
> Programming, maths & science, etc. are acquired tastes. Not things you can enjoy from the get-go.
I dunno, I enjoyed all three from the get-go. Ballroom dance I suspected I would enjoy, but it took me a while to get to the point where it wasn't just work to do it (even though I enjoyed watching it.)
I know plenty of people for whom those things are flipped. I don't think "what you can enjoy from the get-go" and "what takes more time to learn you can enjoy" is constant from person to person.
In my case, I didn't expect to enjoy learning Paraguayan traditional dancing, but it sure was fun and I'm glad I tried it. Like another poster pointed out, it's the hard work that comes first (overcoming the fear, or plugging away at the books), then comes the satisfaction. I think it must feel lonely being a great mathematician for example, knowing that everyone else has settled for less, and that only you and a few others have even a slight understanding of the universe.
Math is mostly about communication with other people.
Only recently have computer proofs become somewhat accepted. The holy grail is still to find simple proofs to interesting problems to enlighten people.
> Personally, I experienced this with programming. When I learned to program in high school, it never struck me as a chore; it was always just interesting and I enjoyed it.
that was me when I picked up my first K&R book in elementary school. It was interesting and fun.
I took on three new hobbies a couple of years ago. All of them had seemed interesting to me for ages, but I'd never made the time to explore them. Once I actually started, it was exhilarating. Practice was long and slow, but never boring. I'd spend hours at it and not even notice the time go by as I worked at a particular technique (especially with classical guitar). Things only got irksome if I indulged in comparing my new skill to my skill level in programming, despairing at the difference, or if an injury prevented me from doing it for awhile. But after a couple of years of daily practice, I've finally reached a level of competence in two of them (there just wasn't enough time for three) where I can feel satisfaction in my output, and am even willing to show other people.
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.
I don't always agree with Mark Cuban, but I think he makes a good point on this when he talks about the folly in the adage, "follow your passions." His point is that you should follow your efforts as that leads you to be better at something, which in turn grows your passions in it. You can read his words for yourself: http://blogmaverick.com/2012/03/18/dont-follow-your-passion-....
Even if you do not have any 'passion' for a field, I think it is important to have some kind of strong intrinsic motivation; to help people, to further Humanity's knowledge, or whatever else. Practice for the sake of practice is incredibly hard to maintain.
This is a great point. These things are never black and white. I suppose you could argue that the pain of developing a new skill could be enjoyable to you and this is how you identify things that don't feel like work. I generally find this to be true (to a degree) for things i truly enjoy and/or have accumulated the most ability in.
> 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 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.
> 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.
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.
This dichotomy, and the realization that it can fuel smart people to use their abilities to do amazing things in the world, is what upsets me most about the startup ecosystem. I'm a programmer. Writing weather software doesn't seem like work to me. However, since going through a startup accelerator, I'm supposed to all these things that are very much "work" - and it gets me down. Things that are important, for sure, like pitch decks, financial modelling, market research, raising capital in general. They're distracting me from the things I like doing but I do them because they're necessary for the business. My "fun work" quickly became "work that I don't like doing", and it's hard to stay in love with your startup after a lot of that.
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.
Yeah, that would be awesome - our startup has three co-founders: me, a designer, and a CTO. So even though I'm the initial programmer, idea guy, and CEO, I'm also the business role at the moment. We'll hire a CFO+others...once we raise funding ;).
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.
I knew some folks at Google who were very content to stay an engineer at the bottom of the org chart and watch the people they mentored get promoted above them, because they understood that what made them happy was writing code and solving tough technical problems, not managing people or playing political games. I always respected them for that. Same reason that Steve Wozniak was always far more of a hero to me than Steve Jobs. It both takes more courage and provides more satisfaction to know what you like to do and figure out how to spend your life doing it than it does to become really good at what other people think they wish they were doing.
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".
> Van Atta was no more than five years younger than Leo. Leo suppressed profound irritation—he wasn't this paper-shuffler's ninety-year-old retired Sunday school teacher, damn it. He was a working engineer, hands-on, and not afraid to get them dirty, either. His technical work was as close to perfection as his relentless conscientiousness could push it, his safety record spoke for itself... He let his anger go with a sigh. Wasn't it always so? He'd seen dozens of subordinates forge ahead, often men he'd trained himself. Yeah, and trust Van Atta to make it seem a weakness and not a point of pride.
I respect Woz for doing that but I think his case is a bit different since he was the co-founder of the company. If you stay at lower rugs, then doesn't it limit your technical decision making power? Or does one need to be indifferent to the philosophical aspect of that and be content with programming?
It seems like you need a business co-founder, and on a positive note, it's relatively "easier" to find a business co-founder than a technical co-founder. Good luck.
My point exactly. I showed this to a couple of my non-tech friends and they couldn't quite understand why we'd spend hours looking at what seemed like "work stuff"
I read "net news" - a lot. So much so that people comment on it. I always wondered if there was any value in "here's what is hot" in the tech world - like a personal link aggregator.
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.
One way in which I benefit from being a Hacker News junkie is that I have like third of (the better part of) the Internet cached in my head. Every now and then (usually many times a month) someone mentions a problem they're working on and I immediately chime in with "you know, two months ago there was this article on Hacker News, which described this tech/tool/advice that solves exactly this".
Among many others, I managed to positively affect my company this way by pointing my boss in the direction of good solutions and clarifying which of his ideas are actually feasible.
There could be in the future. Imagine you comment and construct your personal path through the Net that you share and others are allowed to search. Not just reddit/hn, but everything. And it is not just, I posted to hn or commented on hn, but your actual personal shared web history (with comments: yours and others)
I was thinking the same thing about socializing with tech people, then I remembered that the heuristic was an logical conjunction. It both has not seem like work to you AND seem like work to other people.
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.
Interesting perspective. Looking at things this way, I can say I definitely have no problem of being aware of industry trends, startup culture, as well as having a constantly broadening perspective on the art of programming itself. It's something that sounds like what a good employee should be doing, but I know that for many it's a chore. I do that because, well... I just like it. No actual planning or effort involved.
Is it common for programmers to dislike debugging? I'm stunned. I never considered the possibility, it's always been something I enjoyed. I don't believe it impacts you either way in terms of capability but I imagine it impacts your desire to continue.
If you are working on support/maintenance roles (in engineering) at big enterprise product company then debugging is major part of your job. I enjoy debugging as it is another way to solve problem. But for some people it gets repetitive (and boring) since you have to do that day in day out as a part of support roles.
The guys in the trenches debugging are going to end up having a better overall understanding of the system. Not to mention they're going to be really good at debugging; if they decide to get into a more development-oriented role, that skillset is going to be a huge productivity booster.
Another part of what makes debugging painful for a lot of people working in big enterprise ("small cog in a big machine") stems from bad management.
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"
Well it can be frustrating in some cases, because you have to clean up other peoples messes. Then you run into bad design decisions, laziness, obvious non-caring about the code quality or other negative behaviors that angers you.
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.
I enjoy debugging when I feel like I have some grasp on things. I hate it when I don't know where to look and don't have a good mental concept of the program in general.
It's my favorite part of programming, by a very long stretch. For me it's often a chance to really dig into understanding exactly how all the gears click together, which is my true joy.
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.
I enjoy debugging when I feel like I have some grasp on things. I hate it when I don't know where to look and don't have a good mental concept of the program in general.
For me it's refactoring. I'm in a lull at work so I decide to refactor some JavaScript, while at it I notice the CSS is all messy and has redundant code so I take care of that, then it's the HTML, etc. I enjoy it until the panic starts creeping in that I'm fiddling too much and could break something.
I think it's common for people who are bad at it--who don't have the correct knowledge or skillset. I've been considered a wizard at jobs before because I knew how to read a JProfiler graph. And similarly, I hated, hated, hated debugging in Ruby until I learned about Pry and Byebug. Similarly, I love debugging in C#, because the tools are amazing. (I don't even hate debugging in C++ anymore, so long as it's on my Mac...)
It depends. I enjoy it as long as it's moving the ball forward. But if the people producing the stream of bugs won't take obvious steps to squelch the flow (or at least not stop me from doing so), it can be a maddening and Sisyphean task.
If you do something and get that 'doesn't seem like work' feeling - great! Like all the best heuristics it seems obvious once you say it clearly. My question, though, is about the case where something does feel like work - does this imply you should not pursue it? Or are there cases where sticking with it and over time you find the vocation? For example I hated people management at first, but its a huge component of the 'doesn't seem like work' vocation I'm following now. Are there signals to look for that would indicate there is the prospect for this transition?
If there's one thing I could change, it's to know of something that I could do and not feel like I was working.
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.
I wonder if it's possible to do things that others don't like, but doesn't pay - that then ends up becoming something that does pay. I wonder why PG didn't charge his friends for writing papers.
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.
I had a lot of experience programming in high school. When I practiced on my own, it never seemed like work because it was fun and I had experience telling me that I could accomplish something meaningful. Something made me feel confident in my ability to produce and discover.
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.
How important is it to do something you love that helps you in live comfortable life?
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.
I love reading (and finding flaws in) proofs. Solving math problems is ok I guess but feels like work. The moment of insight is nice, but staring at the wall with a blank mind, mumbling "come forth, ideas" not so much.
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 found something that didn't feel like work, turned it into my career, and then realized that when there are real business outcomes riding on it, suddenly it feels like work. To the point that I now don't even like doing it as a hobby.
This. It's not just about doing stuff you enjoy, I think that's a broken record everyone has been playing. There's a certain level of authority that I think we all want to have on the stuff we do as well.
Totally. I'm a very productive programmer as long as I do my hobby projects, random hacks, fun things, hackatons or work that I have no personal stake in. But whenever I have to work, my productivity drops to literally 1/10 - 1/100th of the normal level and I often feel axious and sick. This is completely absurd - sometimes I get more done in one hour on a bus for a side project than through entire week for work.
i enjoy chopping vegetables much more than most people, and i'm told i'm quite good at e.g. making sauerkraut - an activity i truly enjoy. but i get paid a lot more to write software, which is also reasonably fun.
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?
> i only enjoy writing software about as much as the next person
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.
Would you enjoy chopping vegetables if you had to do it for 40 hours a week? Would it become a little less pleasurable, perhaps, if someone were sending you emails asking why you haven't updated the carrots ticket with your current progress, or moved the potatoes card on the Kanban board?
(I have a bit of a thing for grating cheese - I find it strangely therapeutic.)
I like playing with Linux and sometimes other OSs. I regularly set up servers, at home or on digital ocean. For fun I recently wrote a Dockerfile that would setup a Drupal install, it worked well on CoreOS. Doing this felt like relaxing, meditating. I like that feeling of having a fresh, secure system running smoothly. I can get pretty distracted and annoying if my systems are not running smoothly (when I was younger I'd skip a night getting Beryl to work on Gentoo with the beta Nvidia driver but those times are over now).
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".
Funny he used the example of popping zits as something that most people don't enjoy. I rather enjoy popping a nice juicy zit on the occasion that I get one - it's quite cathartic. I wonder if I can make a career of it.
Watched a couple, in their 30s, doing this on the subway the other day. She was sitting in his lap, going at his face, for the length of my ride (10-15 minutes). Guess I should be happy for them... :-/
"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.
As (failed) physics major, it sounds so strange to hear someone claim to be good at math but not physics. To me physics is 98% math. It's a few empirical facts from experiments and then bucketloads of math.
^ This. I ended up majoring in pure mathematics as an undergraduate after finding out that applied mathematics courses had too much material to memorize after finding out that physics courses had too much material to memorize. Pure math was so much easier.
You and the person who started this thread seem to think that way. I find there is just as much to memorize in math. fields, rings, groups, and all sorts of things. Oh and those greek letters. I like math and physics and stuff but I never thought there was significantly less memorization in math. Calc 2 techniques of integration and then DiffEq seemed like a lot of special cases that had unique solutions we had to remember.
Each of those is just a definition and a handful (literally like 5 or 6) of axioms. If I memorized the axioms and a few key theorems I could usually derive everything else in the homework and on the exams. Most mathematical objects have very similar structure and the rest is just maps (morphisms) between them.
> Oh and those greek letters.
That's actually a very valid point. It took me a few years after graduating to realize how much myself (and I suspect many other students) are hampered by not knowing the notation well enough. Most people just assume you (and they) know what it means and never think about the actual definition and ambiguities. Even not being able to pronounce Greek letters definitely makes you less able (or at least less confident) to reason with them.
> Calc 2 techniques of integration and then DiffEq seemed like a lot of special cases that had unique solutions we had to remember.
That's the applied math part of calculus. The pure side is just "here's a compact/open/whatever set, prove for any point in it this property holds." Then you find out no one cares about either and it's all just numerical algorithms.
Math is certainly required to understand the theory and to synthesize experimental observations into a working model, but I wouldn't put it at more than 50-60%. Most of the math is fairly basic relatively speaking, even at the highest levels of physics.
I didn't get that far in math, but in physics classes after Junior Physics Lab , I once or twice questioned the assumptions. There's always a theorem you don't know about.
I would say math is necessary but not sufficient to be successful in physics. Also, if somebody has the aptitude but not the drive, failure can certainly be an option.
i was a physics major, too. the student in our year who was best at math had trouble with the "hand wavy" stuff we'd do. "well, this term is basically zero, so we'll just remove it" and then she'd pull her hair in frustration, like "how can you just do that? how is it still valid?"
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"
"well, this term is basically zero, so we'll just remove it" and then she'd pull her hair in frustration, like "how can you just do that? how is it still valid?"
I've tried to teach friends with that hangup and found it difficult. Those people weren't good at math, though. I feel like with mathematicians, you should just be able to explain with limits.
> I feel like with mathematicians, you should just be able to explain with limits.
Assuming the limit exists without actually proving the sequence converges is going to produce total junk. Jaynes spent a good portion of Probability Theory illustrating this.
I feel that the right approach (at least it worked for me) is to tell the matematician - "see, this term is very close to zero for all practical inputs we can see in real life (proof of which will be left as an exercise for you), so - as you can see from the structure of the equation - we can safely drop it without introducing any significant error to the end result. Yes, the result will be a little bit less accurate; no, no one will notice. And if you happen to encounter a high-energy (or whatever) problem, you can always go back and use the full equation". Explicitly accepting that each handwave introduces errors and imprecision but that sometimes those errors are below what we can measure (or care about) should be acceptable enough for a math-minded person.
There are some skills in physics which are sort of foreign to the math method of problem solving. (Speaking as a physics major)
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.
I majored in math and physics. The same kind of intuition that you use for physics you also use for math. In physics you may call it choosing a reference frame, in math you call it choosing a coordinate system. At least for me it's exactly the same kind of thinking. You hit the nail on the head here though:
> 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.
Physics is often taught in an exceedingly vague and hand-wavey way. Physics students have to learn to ignore that nagging feeling that something is not quite right. This is impossible for a mathematician. A mathematician wants to cleanly separate the math from the problem that is being solved using math. The problem specification consists of a list of assumptions, and the solution of the problem consists of 100% rock solid math. Physicists weave the two together, so that in the end it's often not clear what is actually being assumed. Furthermore, it's usually not explained based on which experiments those assumptions are justified. A counterexample is special relativity. There it's clearly assumed that the speed of light is constant, and the experiments on which that assumption is based are explained, and from there it's mostly logical deduction. In other topics that is sadly not the case. I would love a physics education where you start with the experiments and work from there, instead of saying "Bam! Here are Maxwell's differential equations. Now deduce things from that based on hand-wavey arguments". I don't mean having the students perform the experiments themselves, just describe what somebody else did and what the results were, and why that led people to believe that the laws of physics are as they are. To make time for that, we should remove the endless by hand solving of special cases of special cases. We live in the 21st century. Instead use numerical methods everywhere, which easily tackle the general case. Got n electrons with initial positions and initial velocities, and you want to see what happens? No problem.
Thank you so much for this; you just described my undergraduate experience in physics perfectly, especially the endless nagging feeling that something isn't quite right -- I never managed to make that feeling go away. I ended up taking a bunch of maths courses towards the end of my undergraduate and can still remember one particular functional analysis lecture on dual spaces where I finally figured out what the hell those dual spaces in quantum were about. Sadly, this was after I had struggled through and finished the full quantum sequence.
Ironically though, I ended up drifting into the EECS department to do applied physics and I've found an environment much more similar to mathematics (and to the experiment-based approach you advocate) than to the physics department -- when you're trying to build systems rather than just solve problems, you can't just wave your hands. Instead, you have to pick apart your assumptions and figure out why you can ignore certain things and not others.
Physicists seem very hand-wavey to mathematicians, and mathematicians seem very hand-wavey to logicians. If you want to learn what real formal rigor is like, study logic.
> "Bam! Here are Maxwell's differential equations. Now deduce things from that based on hand-wavey arguments". I don't mean having the students perform the experiments themselves, just describe what somebody else did and what the results were, and why that led people to believe that the laws of physics are as they are.
It's odd that you chose that example, because there is a rich history leading up to Maxwell doing his work, then Hertz verifying it, then Heaviside refactoring the notation.
Perhaps the deeper issue is that there are only so many lecture hours in a semester for adding these details, and you gotta start somewhere.
a lot of it is just cultural approach. math people tend to like to rigorously define everything they're doing, and work from there. physics is more like "what can we make up and fudge and twist and bend and then get the right answer." there's a lot of people who aren't as comfortable working in that less-defined context.
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 don't think it's just cultural. Ultimately in physics you are often faced with a pile of observations from nature that you have to make sense of. Vs math, where you usually have a mass perfectly defined err.. well math that you're trying to build forward upon.
I think the best advances in both math and physics are made with people with an excellent grasp of when to move forward with existing constructs, and when to start shaping new ones...
True, but a lot of chemistry is mostly math too, and I flunked organic chemistry the first time. I think its because there is some domain knowledge involved in these subjects, which you have to actually care about. I don't particularly care which element has how many isotopes and what the valency is and how many other elements it can bond with, though I did memorize the atomic weights of all the elements in the periodic table and Avogardo number and few such stats. Those things helped a little, because I was ultimately able to pass my chemistry exams just by solving the numerical stuff and ignoring the chemical stuff. I handled physics in same fashion . There's something called the distance equation, where you can express the distance travelled by particle in terms of velocity and acceleration. We had to simply memorize that and use it in problems. I forgot what it was in the exam. So I just derived it from definitions. The teacher was quite surprised, because at that stage we hadn't been taught calculus, so how did I derive it ? Well, I had solved calculus problems by myself, so I just did this - http://pastebin.com/T6PrePh8
>> I forgot what it was in the exam. So I just derived it from definitions.
Hah, I did the same :-) ... unfortunately I also forgot the conventional names, and just used 's' (for speed) instead of 'v', and 'd' (for distance) instead of 's'. My teacher did not object the derivation at all, but told me that the results are wrong, because of the letters used ...
Well, point taken - now, I try to pay extra attention and memorize idiosyncrasies like naming conventions ... it saves time when communicating with others.
That reminds me of a sessional (mid semester exam in India) when I got confused on speed of light being 3x10^8 m/s or 3x10^9 m/s. Strange are the ways of mind. I knew the relation between c and electric constant and magnetic constant. So derived it from that.
Organic chemistry and biochemistry are very different from physics, but chemistry is a very large field and these are just a small part of it.
You should have been exposed to physical chemistry or computational chemistry or maybe even quantum chemistry or analytical chemistry, if your are mathematically inclined.
...but unfortunately they are considered very advanced topics in most learning institutions, even if one could start with them from the very beginning, instead of "classical chemistry". And more unfortunately, after the tedium of "classical chemistry", what you are presented with next are very boring aspects of "organic chemistry" or "biochemistry".
Aiieee, physical chemistry. That thing approaches pure evil.
The chemistry department in the university I studied at required 4 courses of physical chemistry. The introductory course was bad enough - the course had mandatory practice sessions, where assistants were at hand to aid with the supposedly trickier bits. Each session was 1h45m straight.
5 weeks in, there was a supposedly simple exercise. When nobody at the class got even past the initial hurdles in the first 15 minutes, the assistant decided to show how it's done. He failed to finish the calculations in the remaining 90 minutes ... and he knew how the steps went.
Eventually I changed my major from chemistry to CS.
EDIT: btw, the assistant in question was a post-grad so lack of domain knowledge was not the reason.
Note that he says "I wasn't particularly good at history or physics" (emphasis added), not "I was not any good at physics." As other comments point out, there is enough to physics besides math that someone (who was good at math) could easily do well in physics without being considered exceptional.
I was a math + physics double major in college, plus I was also deeply into programming, electronics, and music.
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.
I remember in high school when I was in Form 3 (the penultimate high school class in Kenya, typically at age 16, give or take, more give than take), we were taught about wave interference and the double slit experiment. As a thought exercise, our physics teacher verbally explained various scenarios and asked us what would be observed. In one such scenario, alternating dark and bright lines would be observed, and I was the only one in my class who could visualize it. He took to calling me The Thinker henceforth.
Tl;dr? That whole visualizing thing in physics? IKR?
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.
Funny you should say that. During my undergraduate, I got almost fired from my University for being one of the top students at maths and one of the worse in physics - it was in France, a bit different than in the US.
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.
I think that I have a reasonable aptitude for maths and I like solving problems, but I always felt like textbook problems more-or-less consisted of plugging the numbers into a standard template. Maybe my education was uniquely terrible but I'm surprised that there are people who can blast through textbooks and enjoy doing it.
I'll agree with you on that. I enjoyed math problems, but only until I grasped the concept. Then it became tedious. I then preferred to move on to more complicated problems. Probably why I like programming, because there is always a more complex program to be made or worked on.
If you know SICP, I think it's a good example of a textbook with nice problems. My math textbook in French education system were to a similar level of quality. The first two problems were usually to make sure you understood the basic of the chapter, but the others were much harder or opened new perspectives, or used very different context. It was a real pleasure to read the textbook and the problems.
I see you and the OP liked that feature of math problems in the textbooks. I, however, disliked them completely. Here's why:
The format is usually on of: you have a chapter with explanation, samples, and rules. Fine and dandy, and then you get to the end of the chapter with a bunch of questions. The questions, usually, start off with simple, menial ones that test your knowledge of the chapter. These are not challenging in any way, they're just gatekeepers to make sure you memorized and can apply what was taught in the chapter.
And then, they completely flip it around and make the questions completely different and non-standard. They throw you into the deep end for no reason, without any progression. I wouldn't mind them twisting and slowly warping the questions with more complicated constructs that add new/unique elements, but they hardly ever did that. They instead just threw them all, haphazardly, into the "difficult" questions.
Again, I wouldn't mind that if I had some place to look for the answers in that book. Perhaps in an earlier chapter, which would mean that the "hard" problems in subsequent chapters would try combine the concept in the recent chapter with things learnt in older chapters.
Sometimes, I really think they don't always spend as much time on those practice/bonus questions as much as they should. We'd very easily get out of the whole "memorize + apply" rut of education, and into "learn, apply and extrapolate", which is where real intelligence/knowledge is.
> 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
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.
i hear you, but clever deal anyways. my laziness in high school definitely didn't prepare me for college. my high school geometry teacher started grading our homework after she found out i wasn't doing it, even though i was acing the tests. i still didn't do the homework, banking on the idea i'd get an A anyway. she changed the grading to make homework worth just enough to give me an A-. =\ short term thinking...
I owe my career to not doing math homeworks. School math wasn't something I cared about, but I wanted to make games so I learned programming instead of doing math problems. Ended up catching up with the math through gamedev anyway - it was very easy to learn once I cared about it.
In the end I had mediocre math grades throughout school, but learned a ton of skills I now use to create stuff.
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.
>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.
You probably already know this, but that just means you're an inductive learner, not a deductive learner. I'm also an inductive learner, but unfortunately the majority of math instruction is based on deductive learning.
> It is kind of childish, but I still need the "beating-the-system"-incentive to learn complex stuff.
I can relate. I had a few experiences like that in college.
I once got a bit depressed and skipped a lot of classes; when I finally dragged myself to a numerical methods class I was told that I might be unlikely to pass it at all given all my absence. For some reason this made me so interested in the topic itself that I spent ton of time learning and internalizing the concepts, aced all the assignments and in the end I put the PhD that taught our lab classes in a very awkward position - he wanted to give me the best possible mark but he couldn't given my initial absence and the established rules (he actually did stick to the rules he set and gave me a reduced grade, for which I highly respected him and later choose him as my BSc advisor). Funnily, the momentum I gained actually transferred to other classes so I pretty much aced everything that year.
I had a lot of other situations of the kind of "what do you mean this language doesn't even have functions? I'll hack it until it gains them." leading to the most crazy final project submitted; or "what do you mean I can't ace this class? I still have 24 hours left to do a project!". As long as I was feeling that I'm beating the system in a most overkill way possible, taking the doomsday scenario and sticking it back to the faces of naysayers, no task seemed like a chore. I was in perfect state of flow.
Sadly nowdays it's very rare that I find myself in such scenarios. But when I do, I literally don't need to sleep at night.
> 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.
Obvious answer: move to the next class. Repeat as desired.
fascinating. You say society doesn't pay for the addiction but if you could translate a verbal problem into a solution, I think society would pay for that. I mean being addicted to solving problems laid out for you to knock out one by one.. but if somebody was trying to build something and didn't really know how to lay out the elements or variables into an equation, you could solve that and get paid.
Would you say that working out those problems has given you a solid fluency in math, in that you spend little to no time now on approaching a new problem? I want to develop a strong intuitional base in math, and from what I've read solving problems is the way to go.
>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
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).
This is a bit of tangent, but I looked up Idris since I'd never heard of it. I'm currently learning Haskell and they look really similar. What differentiates the two? What can you do in one that you can't do in the other?
As practical matter, Idris is a new experimental language while Haskell is a mature, stable language with a useful standard library.
But fundamentally Idris is theoretically more advanced than Haskell. The core differences are
1. Idris functions can be proven to terminate (if you choose).
2. In Idris, types are first class values, and you can have dependent functions: functions whose return type depends on their input value.
An example of something you can do in Idris and not* in Haskell, in Idris you can define a vector type Vect n a, which is the type of vectors of length n with values in type a. You can also define Fin n, the set of integers less than n. Then you can define a function index : Fin n -> (Vect n a) -> a which takes an integer less than n, a vector of length n with element of type a, and returns an element of type a. This function is guaranteed to return a value, because the index is guaranteed to be in the correct range.
*For some meaning of "not": you can probably do this in some way in Haskell.
Yeah, you can definitely do that example in Haskell – if by Haskell you mean GHC. GHC has been slowly but surely adding dependently-typed features for quite some time now, which will culminate in a proper DependentTypes pragma sometime soon (for some meaning of soon, anyway).
There are a lot of other differences between Haskell and Idris, though. Totality is a pretty big thing, and Idris is also strict by default. It also has support for proof tactics, which I don't see Haskell getting anytime soon.
I'm not an expert, but I wouldn't think so. To me, full dependent types just means you have pi and sigma types. I don't see anything fundamental about pi and sigma types that would prevent you from having bottom in your language, or from allowing users to define partial functions.
Yes, it happens at compile time. To understand how proofs work here, you want to look at the Curry-Howard correspondence. Basically, there's a correspondence between types and propositions, and between the values inhabiting those types and proofs of the corresponding propositions. So a proof looks like a value of a certain type.
What's with all the bad teachers in these anecdotes? I can't imagine any teacher I've ever met getting upset because of something like that. Quite on the contrary.
At my elementary school this was actually encouraged for students excelling in maths[1]. It was offered - but not stressed as important whatsoever - that if you completed the official book of problems ahead of time, you could begin working on the extra book(s) named "Mathimagination". If my memory serves me, there was no extra credit afforded for taking this route; rather, it was purely to keep students interested in and progressing with a subject they enjoyed and in which they excelled. I credit my teacher that year for getting me excited about mathematics, which carried on for many years.
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.
>[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")
Actually, many dictionaries specifically label "mathematics" as plural, but concede that the singular form is far more popular in practice.
I tend to find only one use case where I find a plural form simply appears more natural: prefixing it with "the", as in "The mathematics necessary to explain the universe are complex." Replacing the "are" with "is" just does not sound right. Funnily enough, the natural pattern with the North American "math" becomes "The math necessary to explain the universe is complex.".
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 encountered many students with such misconceptions of their math ability when I taught as a grad student for two years. With many of these, it turned out they had a strong talent for it, they just didn't have a good pre-college math education. I would tell those students that they possessed a good ability at it and encourage them to try pursuing a math-related career.
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.
> Educators should do more to reinforce their students and help improve their passion.
Absolutely. I studied CS, failed at Algebra and Analysis and decided to drop out. Perhaps I lack the talent/intelligence but I've definitely lacked a good math experience in school and tutors at university haven't been helpful at all. Now I am doing my masters degree in business (with little passion for it and mediocre grades) wondering what I am going to do with that degree. I still dedicate my spare time improving my programming skills but only occasionally find time to make significant progress.
I would say truly _revolutionary_. A spectacularly useful tool.
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)
Revolutionary, sure. I just think it solves a problem that shouldn't exist in the first place. Like if we could prevent cancer, we wouldn't need revolutionary cancer medication.
If I go into Google Docs, I can watch different people edit a document at the same time and nobody is really thinking about version control. I think software development should be the same way.
Maybe. (I say maybe because I could see it turning into pair-programming-like chaos.)
But mostly, git solves a different problem. I find it incredibly useful on my own one-person projects, because it lets me explore forward in numerous directions, branching as I go, and easily roll back and move forward again.
I was just thinking yesterday, it would be cool if I could select a block of code and then pull a slider and walk back and forth just that one block of code while leaving everything else untouched. Anyway, we're way off on a tangent.
If you're that into math, I'm going to second the recommendation of the guy who recommended Haskell. Haskell is VERY math-y, in a way that most programming languages... aren't. ;)
> 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?
I've noticed somewhat similar issues with my peers in school studying to become programmers. They don't enjoy the long hours of debugging or coding. They seem to have come into the CS program expecting it to be a lot easier and less boring.
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.
Then you are in the position of most people on earth and should pick something that has some enjoyable parts, few infuriating parts, and is reasonably financially rewarding.
Edge cases, I love exploring edge cases and even better, the intersection of edge cases (corner cases?). The more edge cases there are, the more interesting something is and sometimes they lead to discovering entire new spaces. I consider myself lucky to have stumbled into an opportunity with my startup that I find endlessly fascinating.
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.
I'm surprised that Paul Graham likes debugging. I tend to stereotype programmers into two camps: one that likes debugging, one that doesn't. I thought he was part of the latter group.
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. :)
That's why I used the word "stereotyped" at the beginning. And why I said it's possible to have both ways (and multiple ways) of looking at things -- and indeed the best programmers do have both.
I do think that most people have an natural disposition toward one way of thinking, and trying the "opposite" way of thinking is a great way to improve.
You could console yourself in the knowledge that, if one is to divide the world at all, one must first divide it in two. The really trick is to keep dividing, and not get stuck at the first thought you have.
I think it would be more helpful if you actually said what you think, rather than making vague objections to something I didn't say. It would make for a much better conversation.
Well, it's just based on my own observations. There's a relationship to Meyers-Brigg, but I don't think it corresponds exactly.
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.
Well this line of reasoning works beautifully for engineers, because solving the types of problems engineers love also HAPPENS to be extremely lucrative.
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.
Besides the finding something that you enjoy part (and given that that makes you good at it) there was this second part - something that is work for somebody else. He probably should have mentioned that there is an implicit third part - finding and convincing somebody to actually pay you for doing this work, plus a fourth issue - the competition.
However, there are careers in soccer, not sure about hiking though, that's more recreational, you might make a teaching business out of it though.
I grew up in a remote rural area of a third world country. My mother & father taught me to read. And I developed interest in reading books at the age of 6 or 7.
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.
Thanks for sharing. I didn't discover electronics until I was much older. I did, however, discover a passion for software at a young age and that has been one of my true loves.
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.
331 comments
[ 4.3 ms ] story [ 143 ms ] threadI 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.
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.
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.
I found myself wondering what a person might have to change to be able to up the exciting work to 10, 20 or 30% of the work-month.
At my last job, I was brought on into a role of leadership and immediately had all of it usurped by my boss (formerly doing my responsibilities) upon my first couple of this-is-unexplored-territory-so-I-stepped-on-a-rake mistakes. Looking back, I was checked out by April (and I started in February).
"Checking out" for me is hard to see until I'm not checked-out anymore. I can't even feel it in the moment, because I still like to argue and I still want to do capital-R Right, but my brain stopped really working for a while. My mental health followed. What few good projects I did and was proud of felt more like the work of other people (even though in retrospect I more than carried my weight) or were things I built out of spite to prove that, no, I really did know what I was talking about, jerks.
Of course, they're not jerks, and I'm friends or friendly with even the folks in my management chain now that I no longer work there. (Getting a 50% raise to leave didn't hurt.) But I can't be a meat puppet, it's not in my nature, and I feel like that's the case for most of the really really good programmers I know.
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.
personally, if I find something dull for a longer amount of time, there is no way I could push through it; luckily, in programming, if something is dull, you either don't have the creative freedom you need, or you have chosen the wrong abstractions (which leads to the fun task of looking for better ones :-))
It's a personal crisis...
https://www.youtube.com/watch?v=PbC4gqZGPSY
Hmmm. After a decade of running, swimming and circuits I still detest them every day just as much as when I started.
The key might be that one can only enjoy activities that are done purely for whimsical reasons.
I dunno, I enjoyed all three from the get-go. Ballroom dance I suspected I would enjoy, but it took me a while to get to the point where it wasn't just work to do it (even though I enjoyed watching it.)
I know plenty of people for whom those things are flipped. I don't think "what you can enjoy from the get-go" and "what takes more time to learn you can enjoy" is constant from person to person.
Only recently have computer proofs become somewhat accepted. The holy grail is still to find simple proofs to interesting problems to enlighten people.
that was me when I picked up my first K&R book in elementary school. It was interesting and fun.
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.
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.
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 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.
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.
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".
> Van Atta was no more than five years younger than Leo. Leo suppressed profound irritation—he wasn't this paper-shuffler's ninety-year-old retired Sunday school teacher, damn it. He was a working engineer, hands-on, and not afraid to get them dirty, either. His technical work was as close to perfection as his relentless conscientiousness could push it, his safety record spoke for itself... He let his anger go with a sigh. Wasn't it always so? He'd seen dozens of subordinates forge ahead, often men he'd trained himself. Yeah, and trust Van Atta to make it seem a weakness and not a point of pride.
--"Falling Free", by L.M. Bujold
https://www.youtube.com/watch?v=pJif4i9NRdI#t=290
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.
Among many others, I managed to positively affect my company this way by pointing my boss in the direction of good solutions and clarifying which of his ideas are actually feasible.
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.
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"
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.
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.
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.
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.
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.
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.
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.
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?
https://www.jacobinmag.com/2014/01/in-the-name-of-love/
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.)
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".
"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.
Each of those is just a definition and a handful (literally like 5 or 6) of axioms. If I memorized the axioms and a few key theorems I could usually derive everything else in the homework and on the exams. Most mathematical objects have very similar structure and the rest is just maps (morphisms) between them.
> Oh and those greek letters.
That's actually a very valid point. It took me a few years after graduating to realize how much myself (and I suspect many other students) are hampered by not knowing the notation well enough. Most people just assume you (and they) know what it means and never think about the actual definition and ambiguities. Even not being able to pronounce Greek letters definitely makes you less able (or at least less confident) to reason with them.
> Calc 2 techniques of integration and then DiffEq seemed like a lot of special cases that had unique solutions we had to remember.
That's the applied math part of calculus. The pure side is just "here's a compact/open/whatever set, prove for any point in it this property holds." Then you find out no one cares about either and it's all just numerical algorithms.
Is there a book covering this topic that you can recommend?
There is a lot to math.
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've tried to teach friends with that hangup and found it difficult. Those people weren't good at math, though. I feel like with mathematicians, you should just be able to explain with limits.
Assuming the limit exists without actually proving the sequence converges is going to produce total junk. Jaynes spent a good portion of Probability Theory illustrating this.
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.
> 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.
Physics is often taught in an exceedingly vague and hand-wavey way. Physics students have to learn to ignore that nagging feeling that something is not quite right. This is impossible for a mathematician. A mathematician wants to cleanly separate the math from the problem that is being solved using math. The problem specification consists of a list of assumptions, and the solution of the problem consists of 100% rock solid math. Physicists weave the two together, so that in the end it's often not clear what is actually being assumed. Furthermore, it's usually not explained based on which experiments those assumptions are justified. A counterexample is special relativity. There it's clearly assumed that the speed of light is constant, and the experiments on which that assumption is based are explained, and from there it's mostly logical deduction. In other topics that is sadly not the case. I would love a physics education where you start with the experiments and work from there, instead of saying "Bam! Here are Maxwell's differential equations. Now deduce things from that based on hand-wavey arguments". I don't mean having the students perform the experiments themselves, just describe what somebody else did and what the results were, and why that led people to believe that the laws of physics are as they are. To make time for that, we should remove the endless by hand solving of special cases of special cases. We live in the 21st century. Instead use numerical methods everywhere, which easily tackle the general case. Got n electrons with initial positions and initial velocities, and you want to see what happens? No problem.
/rant
Ironically though, I ended up drifting into the EECS department to do applied physics and I've found an environment much more similar to mathematics (and to the experiment-based approach you advocate) than to the physics department -- when you're trying to build systems rather than just solve problems, you can't just wave your hands. Instead, you have to pick apart your assumptions and figure out why you can ignore certain things and not others.
It's odd that you chose that example, because there is a rich history leading up to Maxwell doing his work, then Hertz verifying it, then Heaviside refactoring the notation.
Perhaps the deeper issue is that there are only so many lecture hours in a semester for adding these details, and you gotta start somewhere.
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.)
I think the best advances in both math and physics are made with people with an excellent grasp of when to move forward with existing constructs, and when to start shaping new ones...
These things helped me get by.
Hah, I did the same :-) ... unfortunately I also forgot the conventional names, and just used 's' (for speed) instead of 'v', and 'd' (for distance) instead of 's'. My teacher did not object the derivation at all, but told me that the results are wrong, because of the letters used ...
Well, point taken - now, I try to pay extra attention and memorize idiosyncrasies like naming conventions ... it saves time when communicating with others.
You should have been exposed to physical chemistry or computational chemistry or maybe even quantum chemistry or analytical chemistry, if your are mathematically inclined.
...but unfortunately they are considered very advanced topics in most learning institutions, even if one could start with them from the very beginning, instead of "classical chemistry". And more unfortunately, after the tedium of "classical chemistry", what you are presented with next are very boring aspects of "organic chemistry" or "biochemistry".
The chemistry department in the university I studied at required 4 courses of physical chemistry. The introductory course was bad enough - the course had mandatory practice sessions, where assistants were at hand to aid with the supposedly trickier bits. Each session was 1h45m straight.
5 weeks in, there was a supposedly simple exercise. When nobody at the class got even past the initial hurdles in the first 15 minutes, the assistant decided to show how it's done. He failed to finish the calculations in the remaining 90 minutes ... and he knew how the steps went.
Eventually I changed my major from chemistry to CS.
EDIT: btw, the assistant in question was a post-grad so lack of domain knowledge was not the reason.
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.
Tl;dr? That whole visualizing thing in physics? IKR?
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 :)
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.
The format is usually on of: you have a chapter with explanation, samples, and rules. Fine and dandy, and then you get to the end of the chapter with a bunch of questions. The questions, usually, start off with simple, menial ones that test your knowledge of the chapter. These are not challenging in any way, they're just gatekeepers to make sure you memorized and can apply what was taught in the chapter.
And then, they completely flip it around and make the questions completely different and non-standard. They throw you into the deep end for no reason, without any progression. I wouldn't mind them twisting and slowly warping the questions with more complicated constructs that add new/unique elements, but they hardly ever did that. They instead just threw them all, haphazardly, into the "difficult" questions.
Again, I wouldn't mind that if I had some place to look for the answers in that book. Perhaps in an earlier chapter, which would mean that the "hard" problems in subsequent chapters would try combine the concept in the recent chapter with things learnt in older chapters.
Sometimes, I really think they don't always spend as much time on those practice/bonus questions as much as they should. We'd very easily get out of the whole "memorize + apply" rut of education, and into "learn, apply and extrapolate", which is where real intelligence/knowledge is.
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.
In the end I had mediocre math grades throughout school, but learned a ton of skills I now use to create stuff.
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.
You probably already know this, but that just means you're an inductive learner, not a deductive learner. I'm also an inductive learner, but unfortunately the majority of math instruction is based on deductive learning.
I can relate. I had a few experiences like that in college.
I once got a bit depressed and skipped a lot of classes; when I finally dragged myself to a numerical methods class I was told that I might be unlikely to pass it at all given all my absence. For some reason this made me so interested in the topic itself that I spent ton of time learning and internalizing the concepts, aced all the assignments and in the end I put the PhD that taught our lab classes in a very awkward position - he wanted to give me the best possible mark but he couldn't given my initial absence and the established rules (he actually did stick to the rules he set and gave me a reduced grade, for which I highly respected him and later choose him as my BSc advisor). Funnily, the momentum I gained actually transferred to other classes so I pretty much aced everything that year.
I had a lot of other situations of the kind of "what do you mean this language doesn't even have functions? I'll hack it until it gains them." leading to the most crazy final project submitted; or "what do you mean I can't ace this class? I still have 24 hours left to do a project!". As long as I was feeling that I'm beating the system in a most overkill way possible, taking the doomsday scenario and sticking it back to the faces of naysayers, no task seemed like a chore. I was in perfect state of flow.
Sadly nowdays it's very rare that I find myself in such scenarios. But when I do, I literally don't need to sleep at night.
Isn't it essentially a isomorphism of Schlep blindness?
Obvious answer: move to the next class. Repeat as desired.
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).
But fundamentally Idris is theoretically more advanced than Haskell. The core differences are
1. Idris functions can be proven to terminate (if you choose).
2. In Idris, types are first class values, and you can have dependent functions: functions whose return type depends on their input value.
An example of something you can do in Idris and not* in Haskell, in Idris you can define a vector type Vect n a, which is the type of vectors of length n with values in type a. You can also define Fin n, the set of integers less than n. Then you can define a function index : Fin n -> (Vect n a) -> a which takes an integer less than n, a vector of length n with element of type a, and returns an element of type a. This function is guaranteed to return a value, because the index is guaranteed to be in the correct range.
*For some meaning of "not": you can probably do this in some way in Haskell.
There are a lot of other differences between Haskell and Idris, though. Totality is a pretty big thing, and Idris is also strict by default. It also has support for proof tactics, which I don't see Haskell getting anytime soon.
> This means that whenever I call this function, I need to provide together with a and b a proof that b isn’t zero.
What might such a proof look like? And is this supposed to work at compile-time?
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")
I tend to find only one use case where I find a plural form simply appears more natural: prefixing it with "the", as in "The mathematics necessary to explain the universe are complex." Replacing the "are" with "is" just does not sound right. Funnily enough, the natural pattern with the North American "math" becomes "The math necessary to explain the universe is complex.".
Damn you, strange collective noun.
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.
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.
Absolutely. I studied CS, failed at Algebra and Analysis and decided to drop out. Perhaps I lack the talent/intelligence but I've definitely lacked a good math experience in school and tutors at university haven't been helpful at all. Now I am doing my masters degree in business (with little passion for it and mediocre grades) wondering what I am going to do with that degree. I still dedicate my spare time improving my programming skills but only occasionally find time to make significant progress.
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)
If I go into Google Docs, I can watch different people edit a document at the same time and nobody is really thinking about version control. I think software development should be the same way.
But mostly, git solves a different problem. I find it incredibly useful on my own one-person projects, because it lets me explore forward in numerous directions, branching as I go, and easily roll back and move forward again.
> 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?
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.
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.
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 do think that most people have an natural disposition toward one way of thinking, and trying the "opposite" way of thinking is a great way to improve.
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.
I'm not talking about P vs J, more like Ti vs Ni
Ti-Ne - Approach problems from philosophical first principles
Ni-Te - See reality for what it is and bend it to your purposes
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.
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.