Ask HN: How can I tell if I have programming aptitude? - <AUTHOR> aptitude: a natural ability to do something.
What's the fastest way to tell if I'm cut out for, and should pursue programming?
I know a tiny bit of Java, and I can do FizzBuzz, basic recursion, logic exercises, etc. Can anyone suggest a few problems with max completion times for each that will let me know for sure?
Thanks! <comment><USER2> Here's a little story that I tell to anyone who asks me this question. It's how I got it answered for me a long time ago.

> How can I tell if I have programming aptitude?

I have a friend who's a painter. She's a visual artist with a fair deal of success; she can actually live out of her art (and by that I mean she actually sells her paintings for a living, she doesn't just design logos to buy her a little time for her _real_ occupation on Friday evenings).

We were gathered at her house for a gig and waiting for the guitarist to show up (as usual), and while we were each rehearsing various bits and pieces, she sat on an armchair across from me and casually picked up a piece she had almost finished, and began applying some finishing touches. I'd never seen her painting before, so after I picked up my jaw from the floor, I passingly remarked that I'm a little envious on anyone who has a talent for drawing.

(Background: my depth perception is basically shit because of a limp eye. The only reasonable drawings I ever made where in Geometry classes).

Her reply was along the lines of dude, look, the ones who have a _talent_ for this are the likes of Picasso and el Greco. Everyone else, even those of us who paint a lot better than anyone else you can find on the street, just practiced a lot.

She then proceeded to show me a couple of things she had drawn when she was a kid, long before she decided she wanted to do that for a living. Surely enough, they looked much like any other kid's drawings. They were a little less "hurried", as she obviously loved doing it and spent more time on a drawing, but were otherwise indistinguishable from other childrens' drawings. Even later ones, from around the time when she had decided she _really_ liked this, weren't exactly breathtaking.

tl;dr: You have the "programmer aptitude" if:

a) You're a frickin' genius who can talk to computers as if they were kindred spirits, but then I guess you wouldn't be asking this if you were, or b) You like programming enough that you can do a lot of it, and can tolerate spending that time looking at your programs with a critical eye and seeing where you failed and what you can improve.

The pitfall in b) is that it will consistently make you feel like a failure, but hey, that's life man.

<comment><USER3> > ...I'm a little envious on anyone who has a talent for drawing.

Among the artists I know, some have taught drawing at art schools. They've all said drawing and art talent are altogether separate matters. Drawing is about reproducing _measurements_ , a skill anyone able to hold a pencil can learn. Geometry class might be a good start.

> ... the ones whojust practiced a lot. have a _talent_ for this are the likes > of Picasso ... Everyone else ... just practiced a lot.

Actually even the geniuses had to practice. For example, Van Gogh started painting when he was ~23, and the first couple of years he was quite bad at drawing. With practice he improved, and went on to produce 900 paintings in his short lifetime. Manet, the first French impressionist, was so bad starting off he had to cut out the good portions of paintings and sell those separately.

Your a. and b. programmers aren't really distinct, many of the geniuses of the field speak about dismal "failures" from which they learned. It probably requires genius to see the truly important mistakes and how to do things better.

<comment><USER2> The point I was trying to make is that there is no widespread innate aptitude that makes you magically produce amazing programs when you touch a keyboard for the first time, and anyone who does not have that innate aptitude is bound to write shitty web apps for the rest of his life. You look at people doing something that they're very good at and it seems _easy_ , it looks almost like _they have an instinct for it_. It seems like they're born with it, but most of them aren't.

<comment><USER4> It seems that a lot of "talent" can be attributed to somewhat random preferences, especially in childhood.

You described your friend's childhood drawings as "a little less "hurried", as she obviously loved doing it and spent more time on a drawing", and I think this is the key. She _liked_ drawing as a kid, which made her draw more than her peers, she got better at it and because people generally like doing things the more the better they're at them, a positive feedback loop started.

It also suggests a practical approach to get good at something: sit down, practice, and _ignore the discomfort you 'll be feeling at the beginning_. Many people considered talented simply didn't have that initial discomfort, so they drifted into a skill early, whereas for non-talented it is a barrier to entry.

<comment><USER2> I've seen the opposite end of the spectrum, too, though, which is why I don't think talent is only a lot of practice, I just think that you can be very good at something without being one of those "really talented" people.

I have another acquaintance who's a musician (an actual musician, unlike me -- I'm just a programmer who likes playing the drums). The guy obviously had a lot of practice, especially as he graduated a famous music academy so he _had_ to play the violin a lot.

That being said, he started taking violin lessons when he was 6, but by that time he could play it pretty well. Having realized that he can't remember the songs he was inventing, he even developed his own rudimentary notation system (when he was about four), with horizontal lines whose length indicated direction and a combination of dots and relative heights to indicate pitch relative to the first note of the song, so that he only had to remember where to start from. His violin technique was also remarkably good. When he started giving violin lessons himself, he struggled with understanding the first gripes of beginners a lot more than he'd expected. For instance, he never realized it takes so long to learn how to properly angle the bow when playing the second and third string of the violin (they're at almost equal height with respect to the base of the resonance box, so most beginners will unintentionally stroke both at the same time). Not only did he not remember having that problem, he literally never really imagined that someone could have that problem.

He's one of those people who _does_ have an innate talent; there are a lot of techniques that he never learned, nor really "discovered" through an iterative process, he just figured out it would sound good if he did <something>, and it did. His brain was wired in a manner that's favourable to playing the violin and to music in general.

Needless to say, he still had to practice a lot -- he had to learn "proper" notation, he's constantly refining his rhythm and coordination, he had to learn how to play in an orchestra, and it's not like he could play _any_ piece, no matter how difficult, from the very beginning. But there were things which his mind and his body could do without being taught, or which, at least, they discovered a lot more quickly than others did. They weren't enough to make him an orchestra-level musician from the moment he set his tiny three year-old hand on a violin, but they are certainly enough to set him apart from a lot of musicians of his age and experience.

</comment></comment></comment></comment></comment><comment><USER5> Do you enjoy programming?

If so, you will be good at programming. If not, you most likely won't.

<comment><USER6> Exactly, this is THE question!

Even if you were somehow very good at programming but you hatted it, would you choose it as a job? I'd drop it immediately, don't waste your precious time on it.

This leaves one other option: If you loved it more than any other job but you sucked at it, what would you do? I'd say: Do yourself a favor and find a job where you do what you love. If you prove my advice to be bad, you'd be the first human who made it through childhood without the ability to get better by practice, so don't worry. (And certainly don't think you have be on the Linus/RMS level to do meaningful things.)

(The options for sucking and hating and for loving and excelling are obvious ;))

<comment><USER7> "Even if you were somehow very good at programming but you hated it, would you choose it as a job? I'd drop it immediately, don't waste your precious time on it."

Not everyone has that choice, as making a living and doing what you love are sometimes mutually exclusive. Casey Neistat washed dishes before he got into making viral videos. Einstein worked as a patent clerk. Dreamtheater's Mike Mangini worked in IT to pay the bills before finding a way to make a living doing what he loved.

TL;DR: find a way to pay the bills to make time to do what really matters to you

<comment><USER4> For some it's even worse; for me, "doing what I love" is not "programming", but "programming as long as it isn't my job". Weird and not 100% capturing the complexity (I increasingly believe I may have an attention deficit disorder _on top_ of diagnosed depression I'm dealing with), but in my case it's: I program for money, often hating it, because I'm relatively competent at it, and then I program for fun because I love it. I would consider getting a job that doesn't trigger my mental weak spots but the value proposition for most things not related to software is pretty bad these days.

TL;DR: It may be worth programming even if you don't like it, because it pays well. Also, life sometimes deals shitty cards.

<comment><USER7> _I program for money, often hating it, because I 'm relatively competent at it, and then I program for fun because I love it_

I'm in the same boat!

 _I increasingly believe I may have an attention deficit disorder on top of diagnosed depression I 'm dealing with_

Have you tried exercising, getting enough sleep, eating healthier, doing more "outside" or social activities and/or testing out nootropics like citicoline/noopept? All of these have helped me greatly! BTW, highly recommend checking out The Healthy Programmer book: [https://pragprog.com/book/jkthp/the-healthy- programmer](https://pragprog.com/book/jkthp/the-healthy-programmer)

 _life sometimes deals shitty cards_

Virtual manly hug mate!

<comment><USER4> > _Have you tried exercising, getting enough sleep, eating healthier, doing > more "outside" or social activities and/or testing out nootropics like > citicoline/noopept?_

Oh, the usual stuff ;). Tried all of these at various points; haven't noticed much difference, but I think I might not have tried enough. Going item-by- item:

\- Exercising: probably not enough; the amounts I did didn't really affect much (except weight), but I'm going to try again, at a gym this time.

\- I have problems going to sleeping due to depression and anxiety (I constantly feel I haven't done enough yet, so I can't go to sleep yet), combined with being generally a night person (after day spent with people I really appreciate the late hours without any face-to-face distractions). But when I finally fall asleep, no force on Earth or in Heaven can wake me before I get my 7-8 hours. Which annoys my employers.

\- I _try_ , but I just don't like green food :(. Cutting out sugar from diet did wonders to my weight and dental health, but didn't improve mood issues.

\- I'm a very social person, people call bullshit on me when they hear me describing myself as an introvert (I usually send them this classic then: [0]). I frequent various events, both as an attendee and speaker, help run a local Hackerspace and have uncanny ability to serve as a translator between technical and untechnical people.

\- Piractem & noopept - little to no noticeable effects. Nicotine (pure, in gums, I'm not a smoker) - helps stay up a little longer and improves my alcohol tolerance. Adrafinil - does wonders when I need to skip a night's sleep or feel the stress-induced tiredness during the day. I didn't try anything else.

> _BTW, highly recommend checking out The Healthy Programmer book_

Thanks, I'll check it out! I highly respect the Pragmatic Bookshelf for _Pragmatic Programmer_ and _Pragmatic Thinking and Learning_. The book you linked is one hell of an expense, but if it could help, then I guess it may be worth it.

> _Virtual manly hug mate!_

* hug *

#HNTherapy

[0] - [http://imgur.com/76HUN](http://imgur.com/76HUN)

<comment><USER8> I read a trick about writing everything down you need to get done so you don't get that feeling at night your going to forget to do something in the morning. helps sometimes.

<comment><USER4> It works.

The feeling I have is more of a "I've done so little today and there's still so much to do, I can't go to sleep yet".

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> I don't think there is a test that is going to tell you that you should "pursue programming". It comes down to whether you enjoy programming or not, and if you can see yourself personally doing it as a career. I have seen people who are excellent coders and analytical thinkers, yet have no interest in programming as a career. They are much happier in project management and other roles. On the flip side, I have seen people that have a strong desire to be programmers, yet have little "aptitude" (as you define it above). However, they have found niches where they excel at programming by working hard and overcoming their own obstacles.

With that said, there are many coding sites out there where you can compete against others. TopCoder and HackerRank are two that come to mind off the top of my head.

</comment><comment><USER10> Lots of people have said that you need to like programming.

You don't necessarily need to enjoy programming. But if you're also not particularly interested in the _results_ of programming, or the ways that you might get better results, it's probably not for you.

I don't know of any particularly good tests for aptitude, I suspect general intelligence is probably more predictive than anything else.

</comment><comment><USER11> You will almost certainly feel like you're not cut out for programming when you start. Failing is a necessary part of the process, which will make you feel inadequate.

My advice would be: don't compare yourself to external measures or compare your skill with other people. Focus on and enjoy the process of learning (because there's always more to learn).

</comment><comment><USER12> I think aptitude is overrated compared to overall drive / obsession. You should pursue programming if it's something you want to pursue.

Do you like solving problems? How stoked are you when you figure out the cause of your bug? Would you pursue it even if it wasn't lucrative?

Project Euler has some good puzzles, they are somewhat math related but cover a lot of interesting concepts and can be fun to work through.

<comment><USER13> Project Euler does have a lot of good puzzles, but as parent comment says, they're more math related. If you don't like them (FWIW I never managed to get into them) you shouldn't necessarily think that programming isn't for you, as it can also be about building neat software that people use. As others have said here, you should try to get a feel for if you enjoy programming and what sorts of things you enjoy programming, because there is a lot you can do with it. If you don't like the math side, try building a simple app or web page and see if that interests you

</comment></comment><comment><USER14> Algebra.

[http://codeup.com/can-a-simple-algebra-test-predict- programm...](http://codeup.com/can-a-simple-algebra-test-predict-programming- aptitude/)

Previous hn discussion: [https://news.ycombinator.com/item?id=8741868](https://news.ycombinator.com/item?id=8741868)

</comment><comment><USER15> Go build a simple web app. Right now. Pick a programming language out of a hat, set up a database, wire up a few buttons, add some logic, and shove it all up in some cloud.

If you haven't given up in a month, you're cut out for it. Persistence and a willingness to constantly learn are more important than your ability to do mental gymnastics.

<comment><USER16> Web apps are boring. Build tetris.

</comment></comment><comment><USER17> The quickest way: get your IQ tested. If you're north of 115 and have the desire for programming, you'll be fine, though your 130+ peers will probably do better. If south, but you still have desire, you can still produce value, maybe even become a very rich person or internet-famous, but you're unlikely to be a top tier programming god. If you don't have the desire in either case, what are you going to do instead? Consider doing that, but note programming is a pretty good gig even if you're just ok at it or don't like it that much.

There are problem sets out there with time limits. You might even get some if you interview for jobs. But if they give a time limit of 2 hours and you solve it in 1, does that show aptitude? Maybe the average is 10 minutes! But then aptitude is more than just lines of code per hour, especially as the problems being solved become open ended and more complex. Maybe you too got the initial thing mostly working in ~10 minutes but spent the other 50 testing it and uncovering edge cases that would break your peers' quick solutions. So if you have a distribution of results you need to take them with a grain of salt, especially since experience can dominate aptitude so often. ([http://ridiculousfish.com/blog/posts/old-age-and- treachery.h...](http://ridiculousfish.com/blog/posts/old-age-and- treachery.html)) I don't care what your IQ is or how fast you can type, if you start writing a parser from scratch to solve some problem that is trivially solved with regular expressions, the regex user will beat you.

So if you're going to compare yourself to others, you need to try factoring out things like experience by comparing yourself to those with similar levels of experience. Programming competition prep at school is a great way to do it, since presumably you've all had about the same classes, are around the same age, and with many trial problems you can determine who is consistently doing well (aptitude) and who might have had good/bad runs simply due to having or not having a piece of knowledge. Another thing to try is a friendly 'competition' like Ludum Dare a few times. Your goal is to make the best game you can make in 48 hours. [http://ludumdare.com/compo/](http://ludumdare.com/compo/) When it's done, you can compare with your peers, especially ones that look to have a similar level of experience and made similar decisions as you (language, libs, etc.).

<comment><USER18> I don't believe an IQ would be a worthwhile investment for anyone trying to decide if a career path is for them. I'm sure many of the "top tier programming gods" you're thinking of are of slightly above average intelligence and just have exceptional communication skills.

<comment><USER17> Why not? The military has successfully done aptitude testing for decades, it's a quick way to see whether further investment in a direction is worthwhile. (Edited to add this, similarly if you have a budding interest in basketball but you're not going to get tall, you should probably not shoot for the NBA. Keep dabbling if you like it, but have realistic expectations, statistically you won't be another Webb, who was still 5'7". It's irresponsible for people to say keep pushing hard and as long as you're having fun you'll eventually get to the NBA.) Official tests are best but there are a few ok online ones that can at least quickly set approximate expectations. If the OP has already done ACT/SAT tests, it's even quicker to fetch the highly correlated IQ value.

I would be very surprised if people on the level of Carmack or Torvalds or Woz or Knuth or the many others I know of, famous or not, were under 2 standard deviations above average. It's absurd to think they're under one, which is just 'slightly above average'.

<comment><USER18> IIRC, the military uses aptitude tests as a negative filter -- the ASVAB will be able to determine if you are obviously unsuited for a given profession, but it's not designed to single out exceptional individuals. I and a few others who took it with me got perfect scores, but that doesn't mean we'd be equally suited to any career path.

Unless the OP is asking if he has the mental capacity to be a minimally competent programmer, his raw IQ score won't tell him much.

</comment></comment></comment></comment><comment><USER19> I read a study a while ago that addressed this exact problem - a CS professor gave an intro class a test on CS. The students who had a consistent view of how a computer works (no matter if it was wrong or not) turned into programmers. Everyone else failed. There was essentially no movement between the groups.

<comment><USER20> Interesting. Link to the study please?

<comment><USER19> I just found it: [http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf](http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf)

<comment><USER21> This study is biased toward students who already knew CS before taking the class, which is a substantial number. If someone can explain how this methodology makes sense, I'll start to buy the argument.

People used to say women were less likely to have a "natural ability" at CS, despite the huge amounts of seminal CS work that women did in the 50s, 60s, and 70s.

That changed when the Apple II came out, and it was marketed at boys. Boys practiced CS before college and basically drowned out the true newbies in their 101 classes.

After schools realized this, they offered pre-101 catchup classes, and that has totally eliminated the gap that we saw before.

I've still never seen anything to indicate that aptitude to program (as a job, not as a researcher or theorist) exists.

<comment><USER22> The study was retracted by the author. He has said that he was wrong and that the paper was wrong.

</comment></comment></comment></comment></comment><comment><USER23> _" Can anyone suggest a few problems with max completion times for each that will let me know for sure?"_

I'm not sure if timed problems are a good way to assess yourself. Being able to solve programming problems quickly comes from (1) experience from having solved lots of problems before and (2) experience with your languages and environments. If you have a lot of aptitude but little experience, you may not be able to solve problems quickly.

 _" What's the fastest way to tell if I'm cut out for, and should pursue programming?"_

I don't know if there's a fast way that can give you a meaningful answer. I'd suggest spending some time (at least several months) learning more about programming, working on some problems you're interested in, and seeing whether you become a better programmer over time.

</comment><comment><USER24> Something to look for: what gives you that feeling of total bliss?

I know I am a good programmer because when I finally solve the problem it feels good! My brain just releases all these bliss feelings and I go "oh my God, I nailed it!"

That feeling only comes once every several hundred hours of programming. I am routinely faced with technical problems to solve that are completely overwhelming, and that means I have to slog through confusion for weeks on end. If I didn't have that desire to get to the end goal I would probably give up.

I think you should look for what has given you that feeling in the past. If it's building something that works, lining up all the numbers (to 5 decimal places), or cracking a tough problem programming might be very fulfilling to you.

<comment><USER25> Exactly this. Whenever an interview asks about why I choose this career, I jump straight to talking about that feeling of success when something works after working at it for hours, days, etc.

</comment></comment><comment><USER26> Forget trying to work out if you have any 'natural' ability (though since programming is a man made invention you can work out if you have any natural ability in the field by testing your problem solving abilities).

Get going with it. Find an open source project that interests you and contribute. There are a few things that are bad about github but as a platform it really allows you to find issues in software you're interested in, fix it and then submit that fix.

If you work for someone that's ideally the situation you're in, you're working on a software problem that interests you implementing new features or fixing bugs and submitting them.

HTH

</comment><comment><USER27> Well a lot of these answers helped me feel better thanks guys.

To op: for me i find sheer stubborness is how i code. Im not sure if that makes me a good programmer (i have only released one piece of software, took me 4 months to get to where i am, and a long way to go).

I started out loving the results: in my softwares case, the computer understanding what i said and doing that action, then i began to really enjoy how i did it: i just finished expanding it internally to be able to listen to multiple things and perform those actions at the same time.

For me, once i figured out what i wanted todo, not just exercises, that really drove me. I think ive learnt more in the last 4 months, than the previous 8 years of tinkering.

I know your not asking how to code, but this is what is convincing me that i should be programming. Alas i an English teacher, but it pays the bills, and lets me program after work.

</comment><comment><USER3> I agree with all the comments saying there's no short cut to finding out if you have "aptitude" for programming (or anything else). The only way to know is to try it, assessing its suitability is very much an internal matter, really a judgement call.

To cut through the noise, here's a suggestion: pick up a copy of "The Little Schemer", perhaps you'll find it at a library, or possibly on-line. It's a very easy and fun book to get into. Start answering the questions, if you're still at it past page 60 or so, you just might _be_ a programmer. Get all the way through the book, then you definitely have the interest and ability.

As a bonus, if you do pursue programming you will have learned some very useful things, and if you decide to do something else, you saved yourself a fair bit of anguish.

</comment><comment><USER28> Do you like puzzles?

Do you like putting things together and taking them apart?

Are you disciplined enough to organize lots of tiny little things into something big over a long period of time without getting bored and giving up?

Can you see the forest and the leaves all at the same time?

If you answered yes to all of this, then you have what it takes. I say this to anyone else that answered yes, I don't care if you know 0 programming, but if you can do the above, you have what it takes to become a very good programmer. Programming is about putting little things together, organizing them, and at the same time seeing the big picture (forest) while seeing the small pictures (leaf on a tree). It's not magic or difficult.

</comment><comment><USER29> Just ignore this question and don't worry about it.

If you like it, and are ready to put in the effort - just keep learning and you will become a good programmer.

There's no magical mysterious "talent", there's just intelligence, work ethics, and skill.

</comment><comment><USER30> There's not really a way of measuring it but I used some different proxies such as

1\. [https://projecteuler.net/](https://projecteuler.net/)

Math-heavy but interesting

2\. Clojure koans ([http://www.4clojure.com/](http://www.4clojure.com/))

Here you're good if your solutions are close to the best solution - which is often short and readable (= elegant?)

There are probably similar koans for other languages and I'd also strongly recommend a functional language (because it frees yourself from the shackles of imperative and OO thinking, but YMMV)

</comment><comment><USER31> I think it's probably something that's hard to assess like that. I've been learning to program on-and-off for about 2 years. It's only through sheer bloody-minded persistence that it is starting to see the pieces fall into place.

There's plenty of different types of software development too; some require a stronger programming ability than others. If you enjoy solving problems, and making life easier for other people, then it's something you'll get to eventually with enough persistence.

</comment><comment><USER7> "Can anyone suggest a few problems with max completion times for each that will let me know for sure?"

I think how "good" you are at something is a very subjective thing... That said, have you tried programming competitions and projects like HackerRank, TopCoder, the ACM-ICPC, and Google's Code Jam?

PS: if money is not your main motivation, I'd worry more about finding interesting questions/problems that you enjoy solving rather than questioning your aptitude for it.

</comment><comment><USER32> Aptitude is very overrated. I think if you're curious enough to wonder if you're good enough / have natural "aptitude", you more than likely have enough "aptitude" to go with it and can pursue programming.

I think pg has a quote online somewhere to the weight of "if you're spending time thinking about whether you're smart enough, you're most likely smart enough."

</comment><comment><USER33> There are a lot of sites out there that offer programming challenges you can try, but actually developing software and programming are two different things. If you can do all of what you said, then it doesn't matter how well you can solve a programming puzzle. You've got what it takes and what you need is time developing real software and mentors to help you grow.

</comment><comment><USER34> Do you check the stove 3,4 times when leaving the house? Are you sometimes anxious, that you didn't properly shut the door after haveng left the house?

I have this theory where people who do these things are good programmers, since they will check their commit a lot of times until it is perfect to push. But maybe this is more about mastery than having an aptitude for it. :)

<comment><USER10> > Do you check the stove 3,4 times when leaving the house? Are you sometimes > anxious, that you didn't properly shut the door after haveng left the house?

You might have OCD.

</comment></comment><comment><USER35> You're asking on HN. That tells me that you have the interest. The question becomes if you're willing to do the work. Are you willing to put in daily practice to learn coding? Even when the "passion" is gone? If so, you're cut out to be a programmer. Aptitude does not apply.

</comment><comment><USER36> Among psychologists studying the development of expertise, it is considered well established that outside of some rare and obvious cases, there is no such thing as aptitude. Skill is just a function of practice. It all depends on your willingness to put in the time.

</comment><comment><USER37> As an architect (houses) and an hobbyist programmer I see a lot of similarities between these activities: they are theoretically creative work but normally is not your creative aptitude that will land you a job. There are far less creative roles than boring ones..

</comment><comment><USER38> Pretty good reading on this topic - [https://terrytao.wordpress.com/career- advice/does-one-have-t...](https://terrytao.wordpress.com/career-advice/does- one-have-to-be-a-genius-to-do-maths/)

</comment><comment><USER39> Do you think it is fun? If yes, you have it. If no, you don't.

</comment><comment><USER40> I had never heard of FizzBuzz before this exact moment. What a weird "test"...

</comment><comment><USER8> Liked computer science in college because most of the grade was code not tests.

</comment><comment><USER41> If you believe you have it, you'll be much likely to have it.

</comment><comment><USER42> programming like anything takes practice. You also have to enjoy problem solving. That's my short take on it.

</comment><comment><USER43> The longer you can exceed the max completion time the more aptitude you have for programming.

It's a bit like zen... "If I work very hard and diligent how long will it take for me to find Zen." The Master thought about this, then replied, "Ten years." The student then said, "But what if I work very, very hard and really apply myself to learn fast -- How long then ?" Replied the Master, "Well, twenty years." "But, if I really, really work at it. How long then ?" asked the student. "Thirty years," replied the Master. "But, I do not understand," said the disappointed student. "At each time that I say I will work harder, you say it will take me longer. Why do you say that ?" Replied the Master," When you have one eye on the goal, you only have one eye on the path."

</comment><comment><USER44> If you can grasp pointers, recursion, asynchronous programming/callbacks in less than a week (as a concepts, not apply-able skills) you have it.

<comment><USER30> Pro tip: In order to understand recursion, you have to either just know it or know someone who understands it.

<comment><USER44> Not at all. This is just basic mathematical induction in reverse. I think we learned it in 7th or 8th grade.

<comment><USER10> I think he was making a meta-joke about recursion.</comment></comment></comment></comment>


el.js - Element/Node creation tool - <AUTHOR> https://github.com/markgandolfo/el.js A simple node/element creation tool. Native JS without any library dependencies. <comment><USER2> I think creating nodes in javascript is a nogo, keep your html in your templates and just read the templates from js and there you can refer to nodes to do whatever you want in js.

But as always there are exceptions to the rule, and then this lib may come in handy.

<comment><AUTHOR> I've got a browser based notepad using local storage as the key:value store. I needed a way to 'open notes' and in turn create various tabs, etc.

HTML wasn't an option in something so dynamic.

I guess all I'm saying is, there are use-cases where it's fine

<comment><USER2> Yeah indeed.

Another option would be to use something like mustache and precomile your templates to javascript functions which you could use.

</comment></comment></comment><comment><USER3> It would be really nice if the script would adopt the emmet/zencoding syntax for writing html elements. There probably already is a js library that does this although I can't seem to find it :)

<http://docs.emmet.io/abbreviations/>

</comment><comment><USER4> Noob question here. Does it escape content? I find that incredibly important but I don't see it mentioned anywhere.

And what about the alternatives? Yesterday (in the "The DOM isn't slow. You are." article) there was a talk about laconic and crel. Do those escape content?

<comment><USER5> Laconic does [1], this library does not [2]. Laconic uses createTextNode, this uses innerHTML.

[1]: [https://github.com/joestelmach/laconic/blob/master/laconic.j...](https://github.com/joestelmach/laconic/blob/master/laconic.js#L71)

[2]: <https://github.com/markgandolfo/el.js/blob/master/el.js#L48>

By the way, HTML encoding is fairly simple, you just have to be sure you get it right. This is a function for it that I include in most projects where I don't already have something like jQuery or laconic: <https://gist.github.com/jrajav/5204669>

<comment><USER4> I've only recently started to dabble with javascript and its pitfalls such as XSS attacks. Using jQuery was the only solution I found to escape user generated and that gist will come in handy when I don't want to depend on that framework. Thank you for that.

</comment></comment></comment><comment><USER6> This reminds me of a similar tool in php <https://github.com/yuanchuan/html- tag-printer>

</comment><comment><USER7> Or... you could stop trying to be Mr. Fancypants and just write HTML.

For almost 20 years now I've seen projects like this come and go. They go because they're worthless. They might seem helpful (hey! we can use one language to do everything!) but in reality they break the cardinal rule of not using the right tool for the job.

</comment><comment><USER8> Why not just use Domo? <https://github.com/jed/domo>

</comment><comment><USER5> This looks like a straight-up copy of laconic, which is already used by many (including my team): <https://github.com/joestelmach/laconic>

It even hijacks the 'el' naming convention for it.

<comment><AUTHOR> el was shorthand for element. I wasn't aware of laconic until after I wrote this... I'm simply learning javascript and thought this would be a nice way to do it..

<comment><USER5> Apologies, I shouldn't have leaped to conclusions. However, from what I can see it is very similar as laconic, from the interface to the implementation. Laconic also has the advantage of most tags being predefined as methods, and a much longer burn-in and maturity. Not to detract from your efforts, but I'd probably recommend most people go with that if they're looking for something to rely on for practical use right now.

Keep at it, though! Maybe you can find a way to improve laconic, or to differentiate your own library. It's fun and a good way to learn, regardless.

</comment></comment></comment><comment><USER9> I'm always glad to see people creating HTML in JS in a sane way.

That said, I think the API could be a little less verbose, but then I'm biased towards <https://github.com/KoryNunn/crel> :P

</comment><comment><USER10> There's a similar routine which has some jQuery selector syntax resemblence: <https://github.com/blacktaxi/dollar-gee>

<comment><USER11> Good to know about dollar-gee, reminds me of DOMBrew: <https://github.com/glebm/DOMBrew>

</comment></comment><comment><USER12> I found this approach interesting too: <http://aakilfernandes.com/uiji.html>

A reverse jQuery of sorts

<comment><USER13> Thanks for that! It looked interesting but I threw an exception at the second example so now I'm back here.</comment></comment>


I Slept with 65 VCs and Learned These Things - <AUTHOR> http://observer.com/2017/02/i-slept-with-65-vcs-and-learned-these-things/ <comment><USER2> What a shitty title.

</comment><comment><USER3> What an awful and tone-deaf lead in. Also that advice isn't even good</comment>


On the Security of Password Manager Database Formats (2012) [pdf] - <AUTHOR> https://www.cs.ox.ac.uk/files/6487/pwvault.pdf <comment><USER2> [http://keepass.info/help/kb/sec_issues.html](http://keepass.info/help/kb/sec_issues.html)

Problem. In their paper 'On The Security of Password Manager Database Formats', P. Gasti and K. B. Rasmussen have presented attacks on the KDB and KDBX file formats based on unauthenticated header data. For KDB, this issue has allowed silent data removal attacks. For KDBX, the issue has allowed silent data corruption attacks. Both were minor security issues (confidentiality was not compromised).

Status. Header data authentication has been introduced for both KDB and KDBX in KeePass 1.24 and 2.20, in order to prevent the attacks. Also see the release notes KeePass 1.24 and 2.20 Header Authentication. P. Gasti and K. B. Rasmussen published their paper in a responsible disclosure process, and the defenses in KeePass have been implemented before the issues were presented to the public.

</comment><comment><USER3> It there a similar study done more recently on this exact topic? Would love to know if the problems revealed in this paper have been fixed in 1Password and others

<comment><USER4> They've definitely been fixed in 1Password. I think they were fixed in the next version after the paper. They've discussed it pretty openly on their blog, but it was shortly after the paper was released and that's been a few years.

</comment></comment><comment><USER5> For the record, KeePass added header authentication after (thanks to) this paper.

<comment><USER6> Also, Dominik responded to claims made in a (unfounded) post here: [https://news.ycombinator.com/item?id=9727297](https://news.ycombinator.com/item?id=9727297) with a quick blurb: [http://keepass.info/help/kb/sec_issues.html](http://keepass.info/help/kb/sec_issues.html)

I think KeePass with the key file option (not readable by user accounts, run KP as admin) is the best solution on Windows I've found.

</comment></comment><comment><USER7> A pity it doesn't include analysis of using gpg-encrypted file (pwd.sh/passbox-style) or files (pass-style).

</comment><comment> Digit-Al I've been using Password Safe for years. Nice to see verification that it is as secure as I thought it was.

</comment><comment><USER8> This paper appears to precede the rise of LastPass. I'd be curious how it stacks against the rest of them.

<comment><USER9> LastPass got hacked just this year:

[http://lifehacker.com/lastpass-hacked-time-to-change-your- ma...](http://lifehacker.com/lastpass-hacked-time-to-change-your-master- password-1711463571)

</comment></comment><comment><USER10> I'm new to infosec and I'm having a bit of trouble understanding how PasswordSafe is able to modify the master password without re-encrypting the entire database with the new salt.

The only scenario I see this happening is if, upon the creation of a new master password, PasswordSafe encrypts the header (with the old password). This way, when the user enters their new password, PS uses it to decrypt the header, and then uses the old password (stored in the header) to decrypt the database. This would make it easy for someone with access to the old password and the database to simply decrypt it.

Is this how it works? I can't think of any other way it would be able to not re-encrypt the database with the new password. Plus the lingo/acronyms in the paper are going a bit over my head.

<comment> ryan-c Generally these things work by creating a master key to encrypt the data. The master key is then encrypted with a key derived from the password. To change the password the master key just needs to be reencrypted.

<comment><USER11> This is correct. For v3, with P' the key derived from stretching the password:

"2.6 B1 and B2 are two 128-bit blocks encrypted with Twofish [TWOFISH] using P' as the key, in ECB mode. These blocks contain the 256 bit random key K that is used to encrypt the actual records. (This has the property that there is no known or guessable information on the plaintext encrypted with the passphrase- derived key that allows an attacker to mount an attack that bypasses the key stretching algorithm.)"

</comment></comment></comment><comment><USER12> Bruce Schneier's PasswordSafe (according to this paper the safest of all those considered):

[http://passwordsafe.sourceforge.net/](http://passwordsafe.sourceforge.net/)

Available for:

\- Windows

\- Linux

\- Android

<comment><USER13> Works pretty well under Wine on Mac OS X too. (Very sporadically, it locks up for me; probably Wine's fault.)

</comment></comment><comment><USER14> _> Google Chrome stores usernames and passwords in an SQLite database file in the user profile directory. This database provides neither secrecy nor integrity._

Chrome has since implemented OS-level security, the SQLite database contains ciphertext instead of plain passwords.

Is this encryption directly related to my Windows password? Can I transfer the "Login Data" database to another PC with the same password? Or is my password only a passphrase for a longer key?

</comment><comment><USER15> I think it's a huge shame that Chrome has moved away from integrating with the OSX keychain / Keychain Access since v45. Apparently they argued Safari used the keychain in such a way that passwords weren't shared with other apps, so why should Chrome :-/

<comment><USER16> Of course, the real reason is that Chrome is an OS masquerading as a browser. If you consider the keychain to be an OS level function, Chrome (the OS) provides it.

</comment></comment><comment><USER17> >Unfortunately, most formats turned out to be broken even against very weak adversaries. For this reason, users should carefully consider whether a particular database format is acceptable for storing data in the cloud, on a USB drive or on a machine shared with other users.

Finally, our works shows that it is indeed possible to construct a format that provides security, usability and low computation and storage overhead, using standard cryptographic tools.

<comment><USER18> Can you explain?</comment></comment>


Driverless Congestion - <AUTHOR> https://www.ethz.ch/en/news-and-events/eth-news/news/2019/06/driverless-congestion.html <comment><USER3> Let's assume you have two levers.

One of these levers is to quadruple road capacity through new roads.

The other is to quadruple road capacity through driverless cars with perfect routing efficiency.

What do these have in common?

First: they are still massively wasteful of space. Moreso with a driverless car, which is going to be able to avoid having to find a parking spot nearby.

Second: induced demand. Double capacity, triple, quadruple, it doesn't matter. It will return to the "barely works" equilibrium in short order, except you'll have further lashed yourself to a wasteful mode of transport.

I recognise cars have unique utility and that driverless cars will enhance that utility. But for mass people movement, a train is the clear leader, followed by a bus in a dedicated lane. As the world becomes increasingly urbanised that will only grow more important.

<comment><USER4> > Moreso with a driverless car, which is going to be able to avoid having to > find a parking spot nearby.

Only if wasting energy is acceptable. Loafing about doing loops around the owner will very quickly be more costly in terms of energy expenditure (plus opportunity cost of "now I have less energy to go to my next destination") than parking for awhile, especially if we get to a point where every parking space is capable of EV charging (which is exactly the direction in which I'd like to see the world gravitate, since that'll significantly alleviate the problems with EV range relative to ICE).

Thus, I'm far from convinced that this will ever actually be a significant problem. Only way the "perpetually-circling autonomous vehicle" problem would be realistic is if we lived in some Nikola-Tesla-esque utopia where wireless electricity is abundant and constantly charging cars as they drive (or _maybe_ if it's a sunny day and solar tech gets advanced enough to be able to meaningfully power a car on solar power alone).

<comment><USER3> What I was driving at was that people will expect their car to drive away after rush hour (meaning 4 trips, not 2, per day). And they will expect it to come early and loiter near their workplace, which usually won't mean parking or stopping.

So to recap: the car is used twice as much and yes, does laps of the block while waiting to pick you up.

<comment><USER4> Right, but the longer it's loitering, the more fuel and/or battery it's wasting. Likewise, the further "away" it drives, the more fuel and/or battery it's wasting.

The ideal will always be for it to park (or better yet: charge) as soon and as close as possible, and to delay "unparking" and departing for pickup until as late as possible. It's possible that some people will want to subvert that somewhat (i.e. "please park at this specific parking garage instead of the closest" or "please loiter for a couple minutes and wait for me"), but - <USER2> - I ain't convinced those will actually amount to a significant traffic impact.

EDIT: as another bonus, self-driving cars don't have to worry about whether or not the driver can get in/out during these "wait for my owner to need me again" periods, so they can park in much tighter parking spaces while they wait.

</comment></comment></comment></comment><comment><USER5> > _taxis_ ... _results in a price of 56 rappen (about half of 1 euro) per > kilometre driven._

Ahem... a 7 minute ride from our hotel to the train station came up to 35 CHF. That's around 5 km, so around 7 CHF/km or 6.25 EUR/km. Just something to these dreamy 56 rappen and realism of the study in perspective.

<comment><USER6> > The ideal level of demand and price lies at a fleet of some 3,000 automated > taxis, which results in a price of 56 rappen (about half of 1 euro) per > kilometre driven. This roughly corresponds to the current per kilometre > costs of a conventional private vehicle, but is much lower than the 2.73 > Swiss francs per kilometre of a conventional taxi.

If you look at the full context, I think the article states that this is the price which could be achieved by an optimally sized fleet of driverless taxis - it even says right there that the actual, current price with conventional taxis is much higher than that figure.

The current taxi fees in Zurich are actually even higher than 2.73, even before factoring in the base fee and fees for waiting times, but I don't see how that in itself would limit what prices driverless taxis can realistically achieve.

</comment></comment><comment> village-idiot This isn't terribly surprising.

First, we always overestimate new technology's ability to solve problems, while underestimating the side effects. So any grandiose claims about self driving cars fixing congestion should've been met by more skepticism in the press.

Second, we already know that people are willing to spend a large amount of money on personal transit that goes above and beyond the bare necessities of transit, at least in rich western nations. I see no reason why that would suddenly stop once the vehicle's owner is no longer behind the wheel.

<comment><USER7> >Second, we already know that people are willing to spend a large amount of money on personal transit that goes above and beyond the bare necessities of transit, at least in rich western nations. I see no reason why that would suddenly stop once the vehicle's owner is no longer behind the wheel.

The success of Uber suggests that some people are choosing not to purchase private vehicles. But we don't know if this is limited to Millennials.

<comment> village-idiot How many people do you know that have replaced a personal car with Uber? I've known two people like that, and everyone else I know uses them in place of traditional taxis.

<comment><USER8> I use Uber/Lyft as a replacement for cabs to/from the airport, but almost all of my other usage of them is in replacement for driving my own car into the city. (In other words, these are trips that I'd otherwise take, but not via taxi.)

</comment></comment></comment></comment><comment><USER9> I hate it when journalists/reporters do not link to the actual study. It looks like the related publication is [https://doi.org/10.1016/j.trc.2019.02.020](https://doi.org/10.1016/j.trc.2019.02.020)

</comment><comment><USER10> If my nice car tomorrow comes with a free driver, why would I be less likely to buy/own/use one?

Ridesharing is a greenwash smokescreen for an industry that predicts yearly driven miles to go up by 300%.

<comment><USER11> Conversely, I don't know why people still buy cars in urban areas. Rural, I get. But I've lived in cities all my adult life, and I don't even have a drivers license. It feels like a waste of time, and owning a car feels like a pointless waste of money. Why would I pay to have a car that I need to worry about, including thinking about _where it happens to be located_ when I want a car.

I like being able to open up Citymapper, tell it where I want to go, and now they've started not just suggesting Uber and others for the whole ride as an alternative to public transport, but suggesting it for parts of the way. A car you own can't compete with taking you to a train station and picking you up on the other side.

Today it takes ~3 minutes on average to get a car to the front of my house. That's with human drivers, spaced out inefficiently. Get driverless, and you can get a mix of ride shares and individual cars based on spacing out cars based on predicted demand and picking the most efficient solution based on customer preferences with very low wait times at even lower cost.

Owning a car just can't compete in my eyes. Maybe that's shaped by living in European cities where driving long distances almost never competes favorably with mixing and matching with trains and underground (a typical commute for me in the days I used to commute in to central London would have taken twice as long with car, and maybe ~30% less if a car/rideshare service could guarantee to be here in 3-4 minutes instead of waiting for the bus or walking to the train station; with apps suggesting the best route I'd still take the bus when the wait is low, but know I could start my journey later because I'd have a shorter maximum wait)

EDIT: Even more so because parking restrictions are getting stricter and stricter. The London borough where I live won't even entertain planning applications for housing if it includes more than 1.5 parking space per unit. That's expected to drop further as density increases - note that this is not permits for the road etc., but applies whether or not you build your own off street parking. The reason is that restricting parking is seen as a way of discouraging car ownership to reduce demand on surrounding road infrastructure.

<comment><USER12> I was 100% with you until I got a kid. And then a second one. With car seats, baby carriages, spare diapers, towels, tissues etc etc the value of having a car always packed with "your stuff" goes up a lot.

<comment><USER13> Many families still manage fine. My siblings an me were raised without a car and since then the availability of public transport and things like cargo bikes has only improved.

<comment><USER12> Certainly you can manage fine. And it gets easier when the kids get older and are more independent.

But if you can afford a car, it's still a big help. So families will keep buying cars. I'm just trying to explain GPs "I don't understand why people buy cars", not saying that it's a requirement.</comment></comment></comment></comment></comment>


It's time for a special regulatory zone (for Silicon Valley) - <AUTHOR> http://techcrunch.com/2013/12/07/a-modest-proposal/

<comment><USER2> "And yet at the same time it is a city notoriously plagued by poverty, crime, and political gridlock, all of which, like all problems, can be solved by the application of sufficient quantities of VC-funded smartphone apps and responsive websites built on Node.js and MongoDB."

Please tell me this is not serious...

"Silicon Valley has already shown this to be true with its cornucopia of revolutionary, world-transforming companies such as Instagram, Snapchat, Topsy, QuizUp, and Vine (to say nothing of Color.)"

Okay, good. Not serious.

<comment><USER3> The part about calling it Cyberia was hilarious. I still can't stop laughing.

What I don't understand is why people think technolibertarianism is the solution to all our problems. Do people _really_ think that if every single person in the US was a programmer, we would all be better off? Or that all of the world's problems can be solved with engineering?

<comment><USER4> Short answer: Yes.

Long answer: Not silicon valley per se, but the tech industry as a whole makes our technological progress look "easy". You know it isn't easy, I know it isn't easy, almost everyone here on HN knows "it isn't easy". Just as we all love to do to complexity here, society as a whole abstracts the hard part away, and hands over their hard earned money to get the tech without having to see nor do that hard work.

Technology can, of course, make markets more efficient, connect suppliers and consumers, connect us all. What it can't do is solve the hardest problems. Because those problems are people problems, not tech problems.

TL;DR The hardest problems aren't engineering problems. They're people/political problems.

</comment></comment></comment><comment><USER5> "And yet at the same time it is a city notoriously plagued by poverty, crime, and political gridlock, all of which, like all problems, can be solved by the application of sufficient quantities of VC-funded smartphone apps and responsive websites built on Node.js and MongoDB."

When I read this line I thought the guy was some completely deluded silicon valley VC/tech junkie who'd never left the area to see the real world.. Took me a bit longer to realize the fairly decent satire.

The sad thing is that there really are a lot of people in tech who think like this article in some respects. They think that if you just through enough cool tech and apps at people anywhere, they'll just magically stop being the sometimes ignorant, deeply cruel or criminally minded humans they are.

Like toomuchtodo said, most of the serious problems are people problems.

That said though, I think technology can be used to shape peoples incentives and choices so that even if we're partly broken as a species, changing needs and options made by technology will make us do things that lead to more peace and cooperation. Pretty basic idea, sort of like how industrialized agriculture made people stop having wars over food. (mostly)</comment>


Ask HN: Have you ever taken a break from coding? - <AUTHOR> My current role has me doing no coding at the moment. I want to get a new role that has more coding but I feel like I've been away from the detail of it for a long time. I still do a bit at home but not as much as I would like. <comment><USER2> Depends on your skills and how much money your looking to make.

<comment><AUTHOR> I'd be happy with market rate. I'm not in the US so salaries are much more modest where I am but there's also less jobs.</comment></comment>


Microsoft Said to Be in Talks to Buy TikTok, as Trump Weighs Curtailing App - <AUTHOR> https://www.nytimes.com/2020/07/31/technology/tiktok-microsoft.html <comment><USER2> Even among all this antitrust talk I'm imagining a world where Facebook ends up acquiring TikTok.

</comment><comment><USER3> Honestly, this sounds like a great outcome for everyone.

Western users get assurances their privacy will be respected as much as any other western company (not great, but not Tencent levels of government interference/monitoring etc).

Microsoft get's a massive jump-start into social.

Consumers maintain a competitive social-media landscape.

Investors in TikTok get appropriately paid.

What's not to like?

<comment><USER4> I like the apolitical aspect of TikTok, it's a breeze of fresh air and entertainment compared to other social medias. If Microsoft acquired it we could expect the same political agenda pushed on us and the same censorship we get on fb, Twitter and YouTube. Oh well, it was good while it lasted I guess.

</comment></comment><comment><USER5> How does TikTok fit into Microsoft strategy?

<comment><USER6> Professionally, LinkedIn is a social media network they own.

Personally, MS has also invested in Facebook.

Among the young segment, TikTok could be an interesting way to explain/educate beyond social media. Microsoft has social-learning video based tools that could be similar to TikTok, or could become related.

I don't work for MS, just what I see from a distance.</comment></comment>


Haxlr8r: Hardware Accelerator - <AUTHOR> http://www.haxlr8r.com

<comment><USER2> Surprised that it's taken this long for the accelerator / incubator model to be adapted to hardware developers and makers. Makes a ton of sense. Really looking forward to seeing this first batch. The dual china-us angle makes it interesting, too (the team behind this also runs Chinaccelerator, and one of their startups recently won Techcrunch Disrupt Beijing).

</comment><comment><USER3> HaxLr8r is the next best thing in China. As hardware becomes cheaper, faster, smaller, and stronger, who knows what kind of innovative tools we'll come up with to improve the human condition?

Haxlr8r is going to propel us even faster to the future.</comment>


What most bosses get wrong about Millennials - <AUTHOR> http://www.bbc.com/capital/story/20170929-what-most-bosses-get-wrong-about-millennials <comment><USER2> Most companies these days employ recent grads with the expectation that most of them will leave after a short time and be replaced and that very few will make a career</comment>


Intro to JavaScript on CodeSchool - <AUTHOR> http://www.codeschool.com/courses/javascript-road-trip-part-1

<comment><USER2> Now this is something I've been waiting for a long time. CodeSchool is a fun environment to learn Code, The design of the site makes it interactive and cool. Thanks for this! Can't wait to learn Javascript.</comment>


How a mechanical watch works - <AUTHOR> https://animagraffs.com/mechanical-watch/ <comment><USER2> Like a lot of other tech-obsessed people, I jumped on the Apple Watch bandwagon when it hit the market, having not worn a watch since my teen years. After about 6 months, I ditched it due to it being a bit useless at actually telling the time (display didn't always show if I lifted my wrist whilst lying down, terrible battery etc.).

I did however quite like the idea of having a watch again.

On a trip to Japan, I purchased a nice mid-range JDM automatic Seiko, which I now have to say is just about my favourite bit of personal tech. It's beautifully built to such incredibly tight tolerances, looks great, and the underlying mechanism is just awesome (as shown by the OP). It's not that accurate (gains about 40s a day), but I can live with it.

I do wonder how much the smart watch (r)evolution has actually lifted the entire market, and given other people like me a reason to revisit some of the more traditional but still highly functional watch tech.

<comment><USER3> I was the same way with the Moto 360 and other Android Wear devices for a while, then ended up going back to mechanical watches (automatics) myself. I've heard other people with similar stories -- the smartwatch got them into the wristwear market again, then the luxury/history of mechanicals pulled them back in.

Now, though, I want something like Chronos ([https://wearchronos.com/](https://wearchronos.com/)) for my mechanical watches, though a bit smaller... on something thicker, the Chronos makes the entire thing basically as thick as a Panerai and completely unwearable with long sleeves.

</comment></comment><comment><USER4> Is anyone aware of a good hobbyist beginner kit or kit for older kids that might be fun to tinker with to learn the basics?

I think tinkering with small parts like this could be a fun and relaxing/focusing hobby but I'm not sure where to start and don't want to invest much up front in actuals tools and watches.

Just trying to find the physical "codecademy" equivalent to get some initial excitement going and learn if it's something I want to pursue further

<comment><USER5> [http://www.timezonewatchschool.com/WatchSchool/](http://www.timezonewatchschool.com/WatchSchool/)

<comment><USER4> This looks really interesting as an intermediate stage, but I'm not sure I'm even really interested. Any suggestions for something quite a bit less expensive for someone on a budget that teaches the basic principles?

</comment></comment></comment><comment><USER6> How on earth did they make these small parts for pocket watches 500 years ago?

<comment><USER7> You can machine anything to any tolerance, assuming that you can measure it (and you have enough time.) In other words, you can create these tiny parts using relatively crude tools. (Files, saws, lapping, grinding) The critical part is being able to measure the part you are making, so you know if it is good enough or if you need to take off more material. In a 500 year old clock, the parts would have been made to only fit in that clock. Every part would be slowly made by test fitting it against the part it rides against. The fitment would be judged by feel, or by using blue die to see where two surfaces were touching.

Using modern measurement tools, you can machine to pretty tight tolerances, even if your lathe/mill is extremely worn.</comment></comment>


CDs Curated by Steve Jobs and the iPod Team (2016) - <AUTHOR> http://nobi.com/entry-1239.html <comment><USER3> Spotify playlist of all 20 CDs [https://open.spotify.com/user/1168552961/playlist/7D4SVuRHKn...](https://open.spotify.com/user/1168552961/playlist/7D4SVuRHKnJ96Z7NtLWV6L?si=f2xsEcBkRs6heVqI-v5-AA)

<comment><USER4> Something to listen to on the commute home, thanks.

</comment></comment><comment><USER5> A pretty good collection in fact. Of course the stuff here is popular, but mostly for good reason, and varied, naturally. Thinking about music and Apple always makes me think of [https://en.wikipedia.org/wiki/Apple_Corps_v_Apple_Computer](https://en.wikipedia.org/wiki/Apple_Corps_v_Apple_Computer)

</comment><comment><USER6> Playlist with all 20 albums on Apple music: [https://music.apple.com/us/playlist/20-cds/pl.u-4JomX69uaZa1...](https://music.apple.com/us/playlist/20-cds/pl.u-4JomX69uaZa1gpE)

</comment><comment><USER7> I thought I was going to roll my eyes at the selection, but there's something for everyone here given the year and they allow listeners to dip into genre's they may never actively listen to.

Quite nice to see Miles Davis' "Kinda Blue" and the Dave Brubeck Quartet's "Take Five". Those were the two albums (along with Coltrane's "Blue Train" and Thelonius Monk - [don't remember the record]) that gave me an entry door into jazz back in the mid-90's and ever since jazz has been such a joy in my life. Davis' "So What" still stands up the hairs on the back of my neck even after 25 years each time I play it.

That said I have a fairly wide taste in music ranging from Napalm Death to Philip Glass, from 60's psychadelic to 21st century analogue electronica.

<comment><USER8> The omission of Hip Hop is rather startling from today's perspective (and even for the time). Having only a single rock album, on the other hand (and no Metal), might look prescient today.

<comment><USER9> How many big caliber trend setting high society "journalists" invited to this shindig would be hiphop/rap connoisseurs you think?

       Fuck the police! Comin' straight from the underground
       A young nigga got it bad 'cause I'm brown

might not go down well with NYTimes, publishers of "N.W.A.is deliberately provocative, and the songs on ''Straight Outta Compton'' are vicious, sexist and stupid;"

<comment><USER8> While those journalists surely would be delighted to hear their profession depicted on the Dylan CD:

       You try so hard
       But you don't understand
       Just what you'll say
       When you get home

       Because something is happening here
       But you don't know what it is
       Do you, Mister Jones?

[https://www.bobdylan.com/songs/ballad-thin- man/](https://www.bobdylan.com/songs/ballad-thin-man/)

</comment></comment></comment></comment><comment><USER10> > _Today, you can watch that historical event on YouTube_

> _Video unavailable_

sigh.

<comment><USER11> archive.org to the rescue. They are a charity. Give them money.

[https://archive.org/details/Apple_iPod_Introduction_2001](https://archive.org/details/Apple_iPod_Introduction_2001)

</comment></comment><comment><USER12> On a related note, Macs came with the following music before iTunes gained its music store.

It includes a song by Snake River Conspiracy about polyamory! Bet you no one expected that from Apple back in 2000.

[https://open.spotify.com/user/rezmason/playlist/0mWEVPaZDH2Y...](https://open.spotify.com/user/rezmason/playlist/0mWEVPaZDH2YGEcjPNdeo7?si=UKQSZ7N_Sp- GiPGJxqbnRQ)

</comment><comment><USER13> It's a pity they couldn't continue to pack those into production iPods (I'm sure it would've been too costly). There's a handful of albums within that group I already own, and a good number that I wouldn't necessarily buy, but would definitely listen to if it were freely included.

<comment><USER14> Apple Computer was continuously in legal battles with Apple Corps (the record label owned by the Beatles) over staying out of each other's business (easy for the Beatles, hard for Steve Jobs)

Shipping iPod with Beatles content would have been a really nasty legal knot. Or it would have made the universe implode. One or the other.

[https://en.wikipedia.org/wiki/Apple_Corps_v_Apple_Computer](https://en.wikipedia.org/wiki/Apple_Corps_v_Apple_Computer)

<comment><USER15> When Apple and Apple settled their differences and you could finally get the Beatles on iTunes, Apple Stores played only Beetles music over their sound systems for _months_. I can only imagine what it was like working there at that point.

<comment><USER16> > I can only imagine what it was like working there at that point.

Amazing?

<comment><USER15> Working in any environment where you listen to the same 2-hour loop of music for months at a time is rough, when it is the same loop _of the same artist_?

</comment></comment></comment></comment></comment><comment><USER17> Too bad I cannot manage to find Crash by Dave Matthews Band in Apple Music.

All the other are available (at least in France).

<comment><USER18> You don't know how lucky you are.

</comment></comment><comment><USER19> Just because someone is at the top of their field (consumer electronics) doesn't mean that they know anything about other, non-related fields (music). I was actually at this event and I remember rolling my eyes so hard they almost fell out of their sockets as this was the most trite, baby boomer- centric music selection I'd ever seen.

Not to mention the cringe worthy Bono/Jobs relationship:

[https://blogs.wsj.com/speakeasy/2011/10/07/bono-calls- steve-...](https://blogs.wsj.com/speakeasy/2011/10/07/bono-calls-steve-jobs- the-hardware-software-elvis/)

<comment><USER3> A lot of music on that list is not specific for baby boomers. Even those baby boomer era artists like Bob Dylan and The Beatles are regarded as very important and influential figures in popular music. Not to mention that Mozart, Nirvana, Faith Hill and Bach are definitely not baby boomers era artists

<comment><USER20> Sure, but if you had to winnow all of the world's (or just US's) best music down to only 20 CDs, do you really need to include _two_ Beatles albums and Simon and Garfunkel ones? Is Faith Hill really the best you can do for country?

I would ditch those three and consider replacing them with:

* Johnny Cash - At Folsom Prison

* Michael Jackson - <USER2>

* Wu Tang Clan - Enter The Wu Tang

Some punk and metal representation would be good too. And, honestly, Play hasn't held up well over the years. If you want something more representative or influential, maybe Orbital's brown album or Underworld's dubnobywithmyheadman.

<comment><USER21> Giving everyone a copy of 36 Chambers would be a very un-Jobs thing to do. Imagine, you put your product in the hands of a journalist, they put the earbuds in, and the first thing they hear is a 2 minute description of torture and testicular mutiliation

<comment><USER22> The first thing they'd hear is a contextless monologue about rival kung-fu schools.

<comment><USER21> The scroll wheel demonstration took them down to track 9</comment></comment></comment></comment></comment></comment>