'I Don't Think a Four-Year Degree is Necessary To Be Proficient at Coding', Tim Cook Says (macrumors.com) 354
An anonymous reader shares a report: Earlier this week, Apple CEO Tim Cook visited an Apple Store in Orlando, Florida to meet with 16-year-old Liam Rosenfeld, one of 350 scholarship winners who will be attending Apple's annual Worldwide Developers Conference next month. Echoing comments he shared with the Orlando Sentinel, Cook told TechCrunch's Matthew Panzarino that it is "pretty impressive" what Rosenfeld is accomplishing with code at such a young age, serving as a perfect example of why he believes coding education should begin in the early grades of school. "I don't think a four year degree is necessary to be proficient at coding," says Cook. "I think that's an old, traditional view. What we found out is that if we can get coding in in the early grades and have a progression of difficulty over the tenure of somebody's high school years, by the time you graduate kids like Liam, as an example of this, they're already writing apps that could be put on the App Store."
You don't need a degree (Score:5, Insightful)
Re:You don't need a degree (Score:5, Insightful)
For those with a natural aptitude, coding per se can be picked up quickly using resources available online, combined with a few well chosen books. However, there are a lot of other skills (some general and some more specialised) that go into being a top developer. Certain degree courses can really reduce the time necessary to pick up that additional knowledge. Study for certain kinds of certifications can also help you develop the knowledge needed for many development projects.
Yes speaking English doesn't make you a poet (Score:5, Insightful)
People seem to be confused about something.
In most any field, first you learn the terminology. Knowing the terminology, the vocabulary, is necessary in order to to then learn anything else in the field.
After vocabulary, then you learn the theory, how things are supposed to work, then you learn the practical of how today fix things that aren't working, and how to design things to work as they are supposed to. An air-conditioning tech learns vocabulary like "condenser", "compressor", "coil", "king valve", "superheat", and "reversing valve". Once they know the words, they can learn they theory, how AC is supoosed to work. They can learn what level of superheat should be found at the condenser. After they know what the superheat is supposed to be, they can learn the practical of what can cause the superheat to be too high and too low, and what to do about it.
Programming languages, coding, is the VOCABULARY of software systems development. Learning code is step 1 (or step 0), a prerequisite to learning how to design, diagnose, and implement robust information systems.
If you owned a newspaper and were hiring someone to write articles, would "I know English" be sufficient to qualify a candidate for the position? How about if they know what "byline" means? No, writing good articles requires knowing more than the language they are written in, and more than the meta-language used to talk about articles. Writing aolid articles requires significant skillsets far beyond just knowing the language.
Information systems (programming) is the same. Knowing the language a portion of the system is written in is a pre-requisite, just like knowing English is a pre-requisite to writing good newspaper articles. Creating good systems requires significant further skills.
That is NOT to say it's magic. HVAC isn't magic, it's a set of skills you learn after you learn HVAC vocabulary. Sonography isn't magic, it's a set of skills you learn after you learn the vocabulary of sonography in your first semester.
Don't confuse the vocabulary of software systems (code) with the art and science of software architecture and development.
There are a variety of ways to learn these things. College degrees and certifications each provide a well-defined list of what the person claims to know.
Re: (Score:2)
Totally agree with this and would like to extend the message to this advice:
- Learn the rules
- Don't break the rules
- Contemplate the rules
- Rearrange the rules to create miracles of a semi-religious nature.
yw
Re:Yes speaking English doesn't make you a poet (Score:5, Insightful)
There are a variety of ways to learn these things. College degrees and certifications each provide a well-defined list of what the person claims to know.
Unfortunately not. I have found that a degree seems to have no bearing on sill (either positive or negative). I've seen people with degrees put out some truly awful code and self taught programmers put out some really good code. The best code I've ever worked with was by a guy who was an accountant who taught himself to code in his 40s.
Some people are just really good at passing tests and then fail in the real world.
Re: (Score:2)
Re: (Score:2)
I don't see an issue. Spelling is hard... :)
Re: (Score:2)
For those with a natural aptitude, coding per se can be picked up quickly using resources available online, combined with a few well chosen books. However, there are a lot of other skills (some general and some more specialised) that go into being a top developer. Certain degree courses can really reduce the time necessary to pick up that additional knowledge. Study for certain kinds of certifications can also help you develop the knowledge needed for many development projects.
I don't see the degree as necessary to learn, I see the degree as more the certificate that this person is willing to put the effort in to learn. There are other paths, but most don't come with an easy way to separate those willing to do what is needed from those who aren't. Not that the degree always does a great job of separating people, but I haven't seen a better method available.
we don't need $50k-$100K certificates with loans (Score:4, Insightful)
we don't need $50k-$100K certificates with loans that can't be wiped out.
Re:You don't need a degree (Score:5, Informative)
There really is no such thing as natural aptitude.
This is nonsense. Some people are born with different skills.
I've been able to understand and repair mechanical things since I was a little kid. I don't even have to think about it, they just make sense. Electronic things though make no sense to me.
Re:You don't need a degree (Score:5, Insightful)
Agreed. Some people it just comes naturally, some have to work for it, others will never get it, or will never be better than a mediocre coder bc they just cant grasp certain concepts and internalize them.
I'm one of the fortunate that grasped it naturally, programming in one language or another from the age of four after old man taught me to count in binary. My old man doesn't get it, he's hardware, my kid kind of gets it, but it's not her thing. I've never had to work hard for it, but I absorbed, out of pure curiosity and desire to always-be-better, every bit of knowledge I could on the subject. Projects have been challenges to overcome, but never a struggle.
But i've seen ppl struggle with it, trying to grasp a pattern of something and having difficulty. Some ppl have to translate things in intermediary steps before they can understand it, where to me it's as obvious as breathing.
Sometimes, pushing more ppl to code gives them a bad experience and either turns them off from it, or teaches bad lessons that then propagate further in technical life. It's not for everyone, nor should everyone have a basic understanding of it bc that leads to bad designs from insufficient knowledge and experience from ppl who think they know enough.
Ppl that go to programming will either pull themselves up from their boot straps out of a love and interest of the field well before college, or they will see it as a career path and put in the hard work to get there. The knowledge is out there without university, and easily found.
Re: (Score:2)
Agreed. Some people it just comes naturally, some have to work for it, others will never get it, or will never be better than a mediocre coder bc they just cant grasp certain concepts and internalize them.
For me coding always made sense. When I'm in the zone I can "see" it. But not all patterns and languages make sense to me. Some things have a complexity depth that exceeds my tolerance.
Re: (Score:3, Insightful)
Nobody is "born with skills". Skills are learned, entirely, after leaving the womb. Some people may seem to quickly pick up a skill with negligible effort, but that is not an indication they were born with it, only an indication that they were taught by the right person at the right time.
Re:You don't need a degree (Score:5, Insightful)
No
Nobody is "born with skills". Skills are learned, entirely, after leaving the womb. Some people may seem to quickly pick up a skill with negligible effort, but that is not an indication they were born with it, only an indication that they were taught by the right person at the right time.
Nobody taught me to fix things. I drove my parents insane because I learned by disassembling everything in the house. Good thing I didn't want to be a surgeon or we might have lost some cats along the way.
At one time I thought as you do, like "this is so simple, why can't you do it?". Eventually I realized we don't all have the same gifts. Anybody can throw a baseball. Very few can throw it well enough to be a major league pitcher.
Re: You don't need a degree (Score:3)
Re: (Score:2)
It's nature vs nurture. How much of what "just makes sense" to you was simply learned unconsciously from a very young age, and how much is truly a result of biology?
My experience was pretty much the same. I grew up at the dawn of the age of personal computers. Nobody in my family had any experience with computers. I taught myself how to program basic as a kid when I bought a calculator with 3kb of memory and a version of TinyBasic with my paper route money. I thought it was easy and just made sense.
By my senior year, I was writing my friends' programming assignments for them on paper during lunches. They had no clue what they were doing and I couldn't squeeze t
Re: (Score:3, Insightful)
You don't need a degree to be a good programmer. But you do need to spend a lot of time to figure it out.
I thought my university was useless at teaching programming; granted, I had been coding since I was about 5 (really simple crappy stuff). Most of what university taught me was either wrong, or stuff I had already picked up coding my own games growing up.
Thigns they taught me in University that I still laugh about today:
"You should write your app in pseudo code before you start an application" (no-one does this)
"Everything will be specced out for you" (in less than half my jobs have I ever been given prop
Re:You don't need a degree (Score:5, Insightful)
In the realm of embedded control systems, I've worked with people who spent 75% of their time discussing the software, drawing diagrams on their whiteboard, and writing the spec, 20% actually writing the code, and 5% debugging because it basically worked perfect the first time.
I've also worked with people who slapped something together in half a day, then spent the next 3 weeks fiddling with it debugging things until it worked "right" and they called it done.
Re: (Score:3)
"You should write your app in pseudo code before you start an application" (no-one does this)
I'm a mouse, and I'm stirring. But keep in mind that in this context, pseudo-code and flow charts, domain diagrams, etc. are all the same thing. Most of the time that means you'll use a diagram, but if it is a new or novel algorithm then you definitely want pseudo-code.
"Everything will be specced out for you" (in less than half my jobs have I ever been given proper specs, nor has anyone given me sufficient info to create specs myself without consistent prodding).
You probably stopped listening, but I think they went on to say: "... or if you're the one responsible for the spec, you did that in an earlier step so we don't worry about it at this step."
"On average you will write 10 lines of code a day" (I still laugh at this one- yeah, I get what they were saying- you spend time debugging... but 10 lines is an absolute joke).
If you're sufficiently self-motivated, university for programming is a waste of time; the only benefit is that you have a degree when people are looking for one (it doesn't make you necessarily a better programmer).
This is an out-take from a famous programming book
Re: (Score:2)
Re: (Score:2)
Thigns they taught me in University that I still laugh about today: "You should write your app in pseudo code before you start an application" (no-one does this)
That one always cracked me up too. Why would I write an algorithm in some made up bullshit pseudo-language when I can write it once in the language I'm supposed to be learning? Even back then I knew it was stupid.
The one I always violated was Never compose at the keyboard. I never one time wrote an assignment that I didn't sit down at the keyboard with zilch written down before hand. It was all written in my head. I'd spend some time thinking about things and sit down and start typing.
Re: (Score:3)
Regardless of degree or not, you need to gain real-world experience to see what works well and what doesn't. A degree isn't going to give you that knowledge, building things will. And four years in a college isn't going to afford you the time to focus on trying those things in your own time when you've got other classes to tend to.
If you can skip the $250,000 education, do it. The 'well-rounding' can happen at your leisure. The cost of college is just too high to be justifiable for most people at this p
Re:You don't need a degree (Score:4, Insightful)
You don't need a degree to be a good programmer. But you do need to spend a lot of time to figure it out.
The college / four-year degree is also about getting a well-rounded education and being a generally knowledgeable person. There's more to work and life than coding -- or whatever specific field of study. It's also about exposure to a variety of subjects. That exposure may help you decide what you're actually interested in and/or good at. For example, I started off as an EE major and switched to CS.
Re: You don't need a degree (Score:2)
Re: You don't need a degree (Score:2)
Re: (Score:2)
That depends whether the individual in question is truly passionate about the subject; ...
Sure, but it can be difficult to know what you're truly passionate about without exposure to (other) things. One of the worst things one can do is presume to know what you'll need and not need to know going forward in work and life. Doing so just limits your options.
Re: (Score:2)
Well, you can learn how to code, but you won't be writing control software for the machine tool industry by knowing how to code. Similarly with accounting, without accounting principles well-learned, you'll be fish out of water. Most coding is not slapping some code together and zot testing it. Try taking someone from a coding school and ask them to write a compiler.
Coding is just learning a few tools, it doesn't teach you how to use them to do anything useful.
Re: You don't need a degree (Score:2)
Re: (Score:2)
You don't need a degree to be a good programmer. But you do need to spend a lot of time to figure it out.
Well, the flip side of this is that it's never too early to start IMHO. I started at 7 with
10 PRINT "Hello world!"
20 GOTO 10
At 10 I knew the basics of control flow, loops, functions, I could take input, output, do basic string manipulation and arithmetic and output it again. I had multiple-choice adventures, I had basic text based dungeon crawlers (no grues), inventory and buy/sell with cash balance, I wrote some basic organizers with CRUD and search functionality. I had put sprites on the screen and made t
Re: You don't need a degree (Score:2)
Re: A soap salesman advice to programmers (Score:2)
You don't need an MBA to be CEO...
More importantly, they can reduce salaries to non-graduate levels.
Re: (Score:3)
Transition upon turning 18 (Score:3)
16-year-old Liam Rosenfeld [...] "by the time you graduate kids like Liam, as an example of this, they're already writing apps that could be put on the App Store."
With the parent credited as the developer, I'm assuming, because last I checked, Apple Developer Program members had to be 18 or older. Once an iOS app developer turns 18, how if at all does control of an app usually pass from the developer's parent to the developer?
Re: (Score:2)
With the parent credited as the developer, I'm assuming, because last I checked, Apple Developer Program members had to be 18 or older. Once an iOS app developer turns 18, how if at all does control of an app usually pass from the developer's parent to the developer?
The parents (or guardian) will have to take the legal responsibility for the account. When the developer is 18, the owner of the account can be changed.
Comment removed (Score:4, Insightful)
Re: (Score:3)
Re:Bad coders sure (Score:5, Insightful)
What math higher than AP calculus and high school physics is needed? For example, how critical are differential equations and linear algebra, the first math classes that a college student takes after calculus, to getting a basic app up and running?
And what keeps a high school from offering introduction to programming to juniors (grade 11) and algorithms and data structures to seniors (grade 12)?
Re:Bad coders sure (Score:4, Insightful)
What math higher than AP calculus and high school physics is needed? For example, how critical are differential equations and linear algebra, the first math classes that a college student takes after calculus, to getting a basic app up and running?
And what keeps a high school from offering introduction to programming to juniors (grade 11) and algorithms and data structures to seniors (grade 12)?
I think it depends what kinds of programming you're doing. 99% of your business apps that most programmers work on don't require anything too advanced.
Re: (Score:2, Informative)
Linear Algebra (Computer Graphics, facial recognition, plenty of applications)
Statistics (Machine Learning Applications, Any sort of scientific or medical computing)
Combinatorics (From Wikipedia: Combinatorics is well known for the breadth of the problems it tackles). Obviously understanding problems well in the math domain is an advantage when translating those into the computing domain (or thinking in problem space like P, NP, NP-Complete). Also with the heavy emphasis on functional programming these d
Re:Bad coders sure (Score:4, Interesting)
What math higher than AP calculus and high school physics is needed?
God, are you 14? "Why are we learning this? I'm ever going to use this in the real world!"
If you're never exposed to higher level mathematical concepts, you won't know that that's what you need to use when you're trying to solve a problem. You'll be stuck trying to do approximations and hacks to solve your issue, when there's a perfect solution out there that that you don't even know exists.
I've forgotten how to do most of the high level math I've learned in my life, but I haven't forgotten the core concepts. If I run into an issue that is essentially a damped sin wave, I can go re-learn how to do that. Or if I'm trying to model a fluid surface, I'll haul out Navier-Stokes and dust off my old textbooks. If I never knew such things existed, I'd be left trying learn it exists and how to do it, or reinventing it, probably poorly.
Four years of college exponentially increases the breadth of knowledge of a student. Even if they never use most of it, the fact that they know of something can save days or months of work sometimes. Just knowing what words to google can be a lifesaver.
And what keeps a high school from offering introduction to programming to juniors (grade 11) and algorithms and data structures to seniors (grade 12)?
The fact that it only lasts 1 year. Unless we're talking an Einstein level genius, that's not enough time to become knowledgeable about enough stuff to really be able to go out and tackle any problem.
If all you're concerned about is most people being able to hack together a crude task list app or other light-wight app, sure, a HS education is about all you'll need. But if you're trying to do anything with physics, optics, or motion, it's likely not going to be sufficient. The broader issue is that if you don't learn any of the higher order math and physics, you just won't know when your light-weight app demands them, and will end up in a world of pain.
Re: (Score:3)
The kind of applications you're talking about represent a tiny fraction of the programming work space. Business logic applications are probably the biggest segment of the professional programmer job market by a landslide, I'd wager 75% or more. For that kind of job basic algebra is probably all you'd ever need. And of course there is also a big difference between a programmer and the software engineer who plans and designs how the application fits together.
Re: (Score:3)
The thing about differential equations is that in programming with an algorithmic approach, knowing the math just gets in the way of understanding the problem.
Calculus is only interesting/hard because of the context in math; you already have a continuous function, and so you have to sort of simulate time/reality in order to calculate some subset of the function. But in a computer, you're going in the opposite direction; the flow and quantization of time is handled by the computer, and you don't already have
Re: (Score:2)
You won't be doing drive controllers for the machine tool industry with that background.
Re: (Score:3)
I used to work for a small manufacturer of aircraft parts while on a co-op assignment during college. Already having an electronics background (thank you, Navy) and a couple of years as a computer engineering student, I was tasked with reviewing the test procedures of a competitor as they were subject to an international lawsuit following a crash,
What nobody else caught and which I discovered, is that the device turned on when it detected the conditions for icing existing. Problem is, it didn't turn off.
Re: (Score:3)
Now, granted, this isn't a coding problem.
It's not. But it points out that "coding" is a tool to an end, not an end in and of itself. Sure, you can code "an app" by learning Swift or whatever, but what does the app do, and does it do it right?
And that's limiting the "coding" to apps. Once you get into real programs you need to know what the code has to do, not just what code does what.
I work with numerical models. The people who code those are PhD scientists in the field. Their code really really sucks, but the results are based on the physics of
Re: (Score:3)
It depends a lot on what their coding DOES. Knowing how to write code is a skill, like writing english or doing arithmetic. It can be taught to anyone, although most of us probably learned to do it ourselves at a very young age (I think I was 10?). The quality of that code improves either with study of other people's work, or with some level of formal instruction about style, organization and best practices. Experience teaches you the rest, particularly when doing larger and larger projects.
However what you
Re:Bad coders sure (Score:5, Interesting)
I once worked with someone who had a PhD in computer science. His code was a fragile, unreadable, unmaintainable mess. But it worked, and that's what got him through grad school. Also he brought one useful skill to the team, he knew how to design a compiler. But he wasn't the best choice to actually code it!
And that's the difference between computer scientists and software engineers.
Re: (Score:2)
No, that's the difference between one CS PhD you worked with and various software engineers you worked with.
The best, and I mean absolute best, engineer I ever worked with, someone who can get something out the door quickly that will work well has a PhD.
Does this mean PhD engineers are better at delivering quality at high speed? Of course not. Anecdotes do not equal data.
Re: (Score:2)
Was the code robust, readable, and maintainable? Or were these attributes tossed aside in favor of getting something out quickly that worked well?
Re: (Score:2)
they need to know about lots of other things, like higher math, some physics, and a fair amount of computer science theory
People can learn these things from all sorts of sources that don't involve a university or a classroom. Books, videos, and private classes come to mind.
Re: (Score:3)
Someone who loves this - they're going to be good at it
Re: (Score:2)
Sorry, but some people can be good programmers after a short course. They'll have a lot of holes in their knowledge that they need to fill in, but they can do that ad lib.
Other people, equally intelligent by most measures, can take a 4 year intensive and they'll still be lousy programmers.
Note that the "short course" programmers could not do a decent job of systems analysis without a bunch of other background material. But some of them can pick up *that* with startling rapidity. I recall one professional
Re: (Score:2)
If you don't care about the quality of your coders, sure, you can use almost anybody with a pulse. If you want good coders, they need to know about lots of other things, like higher math, some physics, and a fair amount of computer science theory is good for them.
No they don't and anyway a degree isn't necessary.
Don't get me wrong, for many people, a degree is absolutely the right choice. It certainly was for me, and most of the people I've hired have degrees. Every so often someone ends up taking an unusu
Of course not (Score:2, Insightful)
But it provides a useful filter for resumes. So it's going to be necessary for the vast majority of new developers for a long time.
Plus there's a lot of holes in a typical self-taught software developer's background, and I'm speaking as one. That doesn't mean they can't produce anything, it just means it might not be as optimal as someone with a more complete background. "Good enough" usually is, but sometimes you need really good.
Re: (Score:2)
But it provides a useful filter for resumes. So it's going to be necessary for the vast majority of new developers for a long time.
Plus there's a lot of holes in a typical self-taught software developer's background, and I'm speaking as one. That doesn't mean they can't produce anything, it just means it might not be as optimal as someone with a more complete background. "Good enough" usually is, but sometimes you need really good.
Indeed.
I don't think a University degree for programming helps much at all, having got one myself and being unimpressed with the University course; however, I would only hire someone with a degree (unless I knew their skills personally), because someone with a degree is more likely going to be motivated and less of a burn-out. If you don't have the ambition to get your University degree- are you going to have the ambition to work hard and improve?
the problem with "IT" is how broad it is (Score:5, Insightful)
The problem with coding, or IT, or whatever the public says when it means "programmer" is that the field is so incredibly broad that whatever you say about it is true. So in other words, it's meaningless.
Everyone from someone who ties together Visual Basic macros to people developing microcode for Intel are called "programmers" but they are not the same.
Where I work, we have "web devs" who can put together a website using python scripts and Google tools. They are "programmers". Do they need a 4-year degree? Not at all.
We also have folks who develop high-speed, massively parallel differential equation solvers that run on super computers. Do those folks need a 4-year degree? Absolutely! Most of them have a PhD (and they need it).
It's as if we called everyone from an orderly to a brain surgeon a "medical professional" and then we could have people say "medical professionals don't need degrees" and we could have "medical professional" bootcamps. Could we make a bunch of orderlies and vocational nurses this way? Sure. Could we make new brain surgeons? Unlikely.
Re: (Score:2)
Saying you do not need a degree to work in IT or 'programming' is a bit like saying you do not need a degree to, say, 'work on homes'. There is a lot of work in that domain that really doesn't, from basic grunt work up through running a general contractor company. A degree might be good there, but isn't necessary. On the other hand I would expect a HAVC contractor or electrician to have done associate level coursework and such, and I would expect an architect or structural engineer to have a highe
Re: (Score:2)
On the other hand I would expect a HAVC contractor... to have done associate level coursework...
lol No. No, no, no.
They've taken a safety class. And worked under supervision.
That is all you can expect.
associate or more is in trade school with hands on (Score:2)
associate or more is in trade school with hands on apprenticeships that tech real work vs just paper theory.
Re: (Score:2)
It's so 'broad' because 'programming' is a skill not a profession. I am a mechanical engineer. I have a 4 year degree in Mechanical Engineering, but I write code for a living. Why? Because it's just a tool. I also use a keyboard and a phone but I am neither a typist or receptionist.
Do computer scientists need a degree in computer science, absolutely. Do you need a 4 year degree to knock out a script to help you finish your career absolutely not.
Thank God I'll be retiring in 5 years (Score:2)
Good luck everyone.
Re: (Score:2)
I'm also an old fart who started coding at 12yo in the 80s, I guess... like you ; I did go to university to validate my knowledge and have a diploma, but nowadays when I see people applying for a programmer job at 24yo when they started coding at 22yo, *ish*...
He's putting his money where his mouth is (Score:5, Insightful)
This of course assumes Apple actually hires such candidates rather than just saying they do.
It's his dog whistle about the cost of higher ed (Score:2, Insightful)
The real slam here in Mr. Cook's words is against the ridiculous cost of higher education in general. I think that's the implied message he's sending. Of course, the upper echelons of a giant tech company like Apple is infested with degree holding (and probably loan paying) employees from expensive schools because you do in fact need extensive education in the sciences to make top-quality products.
To the masses of users (gamers) on phones, a kid that is "in-touch" with their target audience of peers and kno
Re:It's his dog whistle about the cost of higher e (Score:5, Interesting)
No user gives a shit about the quality of code.
That's not really true, talk to any user these days and they will talk about bugs. The bug count is a direct result of poor-quality code, the closest most users will ever be able to get to it.
Re: (Score:2)
Show me bug-free programs. Show me lots of non-tech users commenting on one program of same type being more bug-free than another of the same type. Find me an article on non-tech website or magazine. They don't follow the bugs, they follow the sizzle.
Everyone experiences tech failures all day long each and every day now. I am certain something you used on your phone yesterday did not work today, and you either had to cancel or retry the app or operation, or reboot your phone. Tech simply breaks all the time
Re: It's his dog whistle about the cost of higher (Score:2)
Re: (Score:2)
This is a non-answer wrapped in an insult
Re: (Score:3)
The real slam here in Mr. Cook's words is against the ridiculous cost of higher education in general.
The real slam is that Apple charges so much for people who come to learn how to make products that help Apple sell even more of their products that you need to give out scholarships for people to be able to attend.
Helping people make things that help you sell your own product shouldn't be a profit center for your company.
Re: (Score:2)
No user gives a shit about the quality of code.
Ask some Boeing pilots that.
True (Score:5, Insightful)
I am not saying all Indians are dumb. These companies gamed the immigration system so much they brought in a deluge of low quality candidates. The really good smart Indians came through the F1 visa system, and did masters and PhD in US universities. These guys earned the good will by slogging all through 80s and 90s. And then came this low quality deluge that is making all Indians look bad.
It sure helps (Score:2)
I hold the unpopular opinion that we're in a Second Dotcom Bubble. The only thing different from now and 1999 is the lower levels of stock market mania...but Slack is IPOing shortly so we shall see.
This bubble and the much higher levels of abstraction that web development employ are driving this sentiment. JavaScript frameworks and the language itself turn very complex coding tasks into Lego blocks that the developer just needs to snap together to build apps. And with everything becoming a web app, I can se
Re: (Score:3)
I hold the unpopular opinion that we're in a Second Dotcom Bubble. The only thing different from now and 1999 is the lower levels of stock market mania...but Slack is IPOing shortly so we shall see.
The difference between now and then is revenue. Slack is making $500million a year (of course, also losing a bit more, but). In the first .com, companies were going IPO basically without revenue. Consider that pets.com had $600k in revenue, while spending $11million on advertising alone. They were able to IPO making $89million after that.
.com was significantly worse.
So a quick look at the financials show why the
Code, no don't. Engineer? Yes, you do. (Score:4, Insightful)
I used to think my degree was worthless because every boss I've ever had in the industry either didn't have a CS degree, or had no degree, at all. Then I realized that much of my workplace recognition over the years was due to the fact that I had a pretty good handle on CS trivia: algorithmic proofs, grammar theory, assembly and all that attendant side knowledge like bit math, etc. So no, I no longer regret getting a CS-degree.
My thinking shifted even more when, 15-20 years later, a lot of new hires I have to mentor learned to code at camp. Let me tell you: they are somehow worse than other folks with no CS-degree. At least an unschooled hacker has that self-motivated spirit that compels them to be competent. All code-campers have is a terrible case of Dunning-Kruger.
What kind of code are we talking about? (Score:2)
Can you make an app using high-level frameworks and tools that have been built for you, that is extremely similar in look and feel and flow and functionality to many other apps.
or
Can you requirements spec, architect, design and code the Fuchsia mobile operating system
Can you conceive, architect, design, code, productively iterate the next Internet-based application with an impact like, say, Facebook.
For example, can you design and make a good chunk of the next dec
Re: (Score:3)
Don't underestimate self-motivated learners... On the other hand, a deep interest and a few books go a long way. Automatons, grammars and complexity theory aren't exactly mindblowingly difficult*. If you have what it takes and dedicate the necessary time to it, you can easily have this stuff down before you graduate high school. The information is just so much more accessible nowadays.
*) I'm not trying to imply that anyone can do it. Computer science and advanced software development are going to be major turn-offs for anyone who finds high school math challenging.
Your sentiments remind of of the book "Rocket Boys" and the film based on it, "October Sky." There are some liberties the film takes with their actual story, but the trusth is they learned a lot of higher math and physics in pursuit of their goals, and with nothing but some books to go by.
Re: (Score:3)
My thinking shifted even more when, 15-20 years later, a lot of new hires I have to mentor learned to code at camp. Let me tell you: they are somehow worse than other folks with no CS-degree. At least an unschooled hacker has that self-motivated spirit that compels them to be competent.
And that's the thing; "no degree" != "code camper". It can mean self-taught, learned on the job, a whole range of things.
The proof's in the pudding. I've worked with degree-d ninnies, and degree-d smart guys. Same with the degree-less.
Sometimes the degree just proves you are good (or good enough) at getting a degree.
Re: (Score:2)
Yeah, but OTOH I was checking out a bunch of compiler theory books at the local University, and most of them hadn't been checked out in over 10 years. I found a book on combinatorial algorithms in the math library that hadn't been checked out even a single time since they switched to computerized card catalogs in the 90s.
Meanwhile at the public library I got in a reservation battle over Art of Computer Programming, which surprised me.
Are you sure that CS graduates today are even learning the stuff you're ta
Comment removed (Score:4, Informative)
Re: (Score:2)
I agree. (Score:4, Insightful)
Just like you don't need a 4 year degree to be proficient in math. But you do have to be dedicated and keep practicing, otherwise you'll lose your skill. That goes for just about anything requiring abstract thinking as its main course of work.
Unfortunately this is pretty much true. (Score:3)
Most modern programming is pretty much black box.
Here's the inputs, here's the output, implement it in
These are pretty much the pump jockey versions of programming, that will eventually be replaced by simple single purpose AI implementations.
If you're talking about Architecting solutions you may want someone who knows more than how to search Google to copy code..The same is true if you don't have many programmers working on a solution. Someone needs to understand (and modify) the requirements and direct implementation to correctly solve whatever the software is supposed to be doing.
Blindly following client requirements, without deep understanding of details of implementation often creates projects that never end, and never deliver.
Expert Beginnerism (Score:2)
It is true. There are some pretty incredible coders who don't have a degree.
Being an engineer, though, that's a bit different. Yes, that too can be learned through self study, lots of mistakes, and good mentoring.
But there are just too many folks out there who think, "Gee, I'm 1337, and have this special case, I'll rewrite std::map" and such, who don't really have have the wisdom of experience - either their own, or imparted - and who don't even see the need for it.
It took a few years of being a "cowboy c
Largely depends on what you're doing (Score:3)
If you need someone to write "Hello World!" then sure, almost anyone could do it. Most business coding requirement are pretty simple too but do anything a bit more complicated such as multi-user or multi-threaded OS, efficient data structures or simply handling insanely huge amounts of data then you'll want someone with a background that is at least familiar with the theory and algorithms required behind it. You don't need an engineer to build a dog house but you might want to consider one if you're building a skyscraper.
Serious question (Score:2)
How much coding has Tim Cook done? Seems to me if he came up on the business side and didn't do a lot of coding, he's no expert to be saying anything about it.
Oh really? (Score:2)
Cook graduated from Robertsdale High School. He earned a Bachelor of Science (B.S.) in industrial engineering from Auburn University in 1982,[15] and his Master of Business Administration (MBA) from Duke University's Fuqua School of Business in 1988.[16]
https://en.wikipedia.org/wiki/... [wikipedia.org]
Non-software engineer, non-developer talking head who hasn't done any sort of engineering in 20 years thinks education in a field in which he has no experience isn't necessary.
True - for code monkeys (Score:2)
You don't need a degree to (Score:2)
There are plenty of educated(with degrees) IT individuals in the US looking for work as long as they do not want a livable wage.
PS I am self taught when it comes to writing code, was an electronics tech(USAF) by training. Few large entities would hire me as an employe
I can relate ... (Score:2)
... I was a contractor for Mobil Oil (ca 1982), doing data entry into Lotus 1-2-3 on an Arnold Schwarzenegger IBM portable with a drop-down keyboard, green screen DOS, two-5 1/4" floppy drives ...
I got my first computer in Feb 1978, a TRS-80.
I turned a hobby into a living. I simply had the aptitude. It was a gift.
I lived and breathed computing and did A-D, D-A conversion for the Z-80.
Self-taught.
My knowledge and skills increased along with the changes in technology and Mobil, in an extraordinary move, flew
Doesn't matter much when pool is limited (Score:2)
With 4 yr degree talented developer has better chances to learn how to make quality/portable/maintainable/well designed/etc. code. But in the end the pool of good developers is still small, not sufficient to meet the current demand. (And lots of Co.s would like cheap top developers, but that's another story). So at this point anybody with coding aptitude should reasonably expect to get coding job. It is just that they would reach 'top developer' state with proper mentoring or education or such.
education unnecessary (Score:2)
it's not the coding that one needs to learn (Score:2)
Re: (Score:3, Interesting)
The more people who code, the less money there will be in the business. Any time someone says there's a shortage of "X" (usually coders, teachers, nurses), they mean that X costs too much to hire, so they want people to pile on so they can pay less. They'll still be taking 60% off the top to buy their yachts with, that's not changing.
The only career that definitely, absolutely is guaranteed well is to be professionally rich. Provided you are not a moron, the pay there is very good, and the hours are whateve
Re: (Score:2)
The more people who code, the less money there will be in the business. Any time someone says there's a shortage of "X" (usually coders, teachers, nurses), they mean that X costs too much to hire, so they want people to pile on so they can pay less. They'll still be taking 60% off the top to buy their yachts with, that's not changing.
Which is why all these tech CEO's love all the "teach everyone to code" initiatives.
Sure, maybe they also care about getting more women or more whatevers involved, but I suspect that's not the primary motivation.
Re: (Score:3)
The more people who code, the less money there will be in the business.
You realize demand can grow as well, right?
Re: (Score:2)
Bill Gates "dropped out" of Harvard at some point, sure. But he already had a successful business.
He was a student in good standing when the Altair came out and he decided to start a company. But he didn't drop out at that time. He went on a Leave of Absence. Had MicroSoft failed, he would have restarted classes normally.
His parents were rich, but they weren't his investors; Gates and Allen started it themselves, with their own pocket money. They'd worked together the prior summer at Honeywell. And the firs
Re: HR won't buy it (Score:5, Interesting)
I'm 42, I started my professional programming career aged 19 after dropping out of Uni. However, I'd been coding in 6502 assembly since the age of 10, 68000 assembly since the age of 12, then Pascal at 16 and C at 17 so had far more experience than your average university graduate did back then and especially these days.
In my my long career I've hired both self taught bedroom coders and graduates fresh out of Uni. Both have their pros and cons but what I have observed time and time again is that ~99% of the bedroom coders have a voracious desire to improve themselves and ~50% of graduates think they are God's gift to the world thus having no need to improve because they are already "teh genius coder".
It's usually a class background thing, the self taught without a degree are in that position because they couldn't afford uni. The graduates that aren't delusional are usually self taught prior to attending Uni, the delusional snowflakes that think they are wonderful usually have no experience in coding prior to attending Uni.
I'm in the UK, YMMV due to cultural issues etc
Re: (Score:2)
We have an added complication here (and you probably do too) because there were lots of "programmer mills" where people take intensive 6 week courses in the language du jour (you too can be a certified MS programmer in COM and make the big bucks!) - so you have the self-taught, the degreed and the certified each with their idiosyncrasies. (self-taught/degreed here!)
Re: (Score:2)
And is it ACID and DRY?
Can you jump from recursive functional programming to constraint-logic programming to assembly as needed, and know how they relate to each other, and when each might be appropriate?
Did you remember the "what the hell is this whole thing anyway?" comment at the top of each module, class, and method in your well-factored ontology?
Nevermind.
Re:Business Programming Requirements (Score:4, Funny)
I am one of the best developers I have ever seen
What a coincidence, me too! Hope we don't ever meet each other we might collapse the universe with our greatness.