I'm not sure it's a great idea to get so focused at such an early age. There's a lot to learn about the world when you're 14, and it might be good to explore a wide range of topics. (I personally took most of my "real" classes in high school, so by the time I got to college, I had an idea of what I wanted to do. After going to college for a year, I realized my needs would not be met in that way. But deciding at 20 is a lot different from deciding at 14.)
There is a lot to learn about the world when you're 14. But I was already programming when I was 14. When I was younger than that, I asked my dad how I could cheat at the qbasic games we had on the family computer: he handed me a 'learn qbasic' book, and told me that all I needed to know to cheat in those games was in there.
Just because the school will focus on software engineering doesn't mean it will lack in other areas. I'm fairly certain I would have done better in math, for example, if the math courses were programming-oriented instead of pencil-and-paper oriented.
It's pretty specifically stated that this is not a vocational school.
A lot of classes can benefit from an injection of programming - a few off the top of my head include statistics, maths, physics...
I was in a similar boat. I was already programming in qbasic when I was around 14-15, but went to a standard high school. Math had always been my strong point, but I lost interest and my grades suffered. It was then very difficult to catch up because I wasn't learning whatever I needed to learn throughout the year.
I did however excel at the programming course we had. I loved going to the computer lab and trying stuff out. This school would have been awesome if it was around when I was in school. It would have been a perfect fit.
I guess it is official now: IT programmers are the blue collar workers of the digital age. Nothing against hard working men and women regardless of the color of the[ir] collar, but software is a mind product and this disparages the true measure and worth of [what] we do as software engineers.
For a while now I've been thinking that there should be a divide between software engineers, programmers, and computer scientists.
Software engineers should be considered the people who go out and design a system, who are the primary create force and technical experts. Programmers should be people who implement.
Computer Scientists should be (mainly) scientists.
I see a lot of people who I have gone through school with enjoy the first 2 years where it's mostly practical work. Then they hit the last 2 years where it comes down to theory and they struggle with it.
A 2 year vocational school that focuses on learning a couple of languages, data structures, and gives a few options for specializing a bit sounds like a good idea to me. Then you can software engineering which is focused entirely on the actually engineering of a system.
In a seperate but equal sort of setup you can have more theoretical CS.
I'm sure that this divide exists somewhere if people still talk abou tit, but genuinely confused by it. "Programmer" and "Software Engineer" are different job categories for the purposes of filing taxes (in the US), and I've read articles projecting job prospects that give a sunny outlook to "software engineers" and poor prospects to "computer programmers." The idea is always that "software engineers" design a system and provide technical expertise, and "programmers" implement.
Thing is, I've called myself a "programmer" for well over a decade now, and I just don't see it. Where are these programmers who just "implement"? I guess if someone had wireframes and made all the technology decisions and handed it over to a programmer, maybe that would count?
A company I worked for tried this, they made me an "Architect" and gave me an offshore team, and it was a disaster. It could be that I wasn't good at providing precise instructions, but to me, precise instructions are hard to distinguish from code. Well, maybe that's why "programmers" have poor job prospects - all programming work is now done by "software engineers"...
Does google, or facebook use "programmers" who are distinct from "software engineers?" Any startups out there that do this?
Does not exist. It seems to be primarily about trying to define programming as an upscale profession like engineering - "programmers" might be replaceable cogs, but "software engineers" are a little harder to shove around.
Even worse, you have "computer engineering", which is a real engineering discipline (at least when focussed on hardware) and then you have the disaster that is the CS/programming community's attempts to ape standard engineering practices when the blueprint and finished product are the exact same thing.
The divide exists as a matter of practice; I do agree with you. But I think it a disservice to steer young people who gravitate to the field [from casting a wide net as far education goes]. My formal education background is BSEE (through which I learned to reason about systems) and MArch (through which I learned to think about total design of artifacts subject to orthogonal concerns). I have been happily coding since 16 years of age (20+ years professionally), but my one regret (as far as software goes) remains not hitting the CS fundamentals earlier, and I have been addressing that for the past few years. (I'll admit that back in engineering school we used to make fun of CSs ("is computer science? /snicker") Turns out the joke was on me!)
If you haven't seen this, I recommend this lecture by Dr. Alan Kay, that does address this issue (besides being a phenomenal talk):
(1) How does viewing something as a craft rather than as a Mind Product undermine its worth? Your statement tells much more about your value system than it does about reality.
(2) Read. The school is not structured like a vocational school.
Here in Finland people have two different paths to choose from after the first (compulsory) 9 years of studying. The academic path means going to an upper high school and then to a university. The other option is to go to a vocational school, and then to either get a job, or continue to a university of applied sciences[1].
The system seems to be working pretty well. The vocational path has been gaining popularity all the time (at the moment I think almost 50% of students choose it). The academic path is still considered more prestigious though.
The main difference seems to be that here we make the decision when we're 16-17 years old.
[1]: The difference is that a University teaches "computer science" while a University of Applied Sciences teaches "software engineering". You can also go to a University from a vocational school, or to a UoAS from an upper high school, but usually people don't do that.
Conversely, if a student thinks this is something they want to do, and find out this is not what they want, better to do that sooner rather then later. Cheaper to do it this way then in college.
I actually attended one of these types of schools in New Jersey. They are part of the vocational district, but are far from it.
There was an entrance exam and requirements, when I attended there were four schools: Marine Academy of Science and Technology (marine-biology with a heavy NJROTC component), High Technology High School (engineering), Academy of Allied Health and Science (where I attended and focused on medical careers) and the just opened in 2000 Communications High School (video, media, design, journalism). Since graduating in 2004 they've opened a fifth, Biotechnology High School.
Though I do not have a career in medicine, I don't know anyone who attended these schools who would have traded it for anything. The academic program was one of the most rigorous in the state, and I felt truly prepared for college. The schools are consistently ranked near the very top of the US News rankings nationwide and publicly financed.
The value is in the exposure, I still have a great interest in health and use that experience frequently, I'm even an EMT which I did as a senior elective there. In fact, there's even a YC founder who went to one of our schools.
TL;DR: It's not so much specialization as it is a rigorous 4 year college prep program with exposure to a field you have interest in.
HTHS'er (1999) & startup founder here -- I think this will be good for NYC but naming the school after such a focused discipline seems a bit shortsighted. "Software engineering" is likely going to be a phrase that looks quite silly a few decades from now. At the very least it should be a Computer Science academy.
It is probably not for everyone. But for 100 lucky students, I bet this will be just what they need. My son, who incidentally will be in 9th grade next year, has never had any interests beyond computers. Maybe it's time to move to NY.
Yes you do need to have a wider range than just CS
In fact a lot of what industy needs is more Computer Enginering and lees hyper secpecialised CS majors - you dont see Audi or Mercedes saying we need engineers lets train a load of physicists.
Computer Engineering is generally hardware and firmware design, something that is becoming less and less important as generalized processors have become smaller, cheaper, and more powerful. At this point, almost everything can be done in software, so a Computer Science degree is more important.
Also, your Audi/Mercedes analogy is flawed. Physicists and engineers are very different, and if they needed more engineers, they would sponsor engineering schools. Right now we need more software developers, so training kids in Computer Science makes complete sense. Some schools (including my alma mater) do provide a separate Software Engineering degree, but they generally overlap so much with CS as to be virtually indistinguishable. It's also somewhat laughable to call Software Engineering "engineering", as there is a general lack of rigor and no formal qualification for software engineers like there is for every other branch of engineering.
> Computer Engineering is generally hardware and firmware design, something that is becoming less and less important as generalized processors have become smaller, cheaper, and more powerful. At this point, almost everything can be done in software, so a Computer Science degree is more important.
And who, exactly, do you think is designing these new processors?
Computer Engineer here- while I would selfishly argue that Computer Science is not more important, the CS field is even now still growing, while our field is contracting. I do not expect ours to ever go away entirely, but the answer is not to make everyone a CE.
I think maybe what mjwalshe is thinking about, is the Computer Scientist graduates who cannot even program.
yes that's what i was getting at theorys all very well but you need to be able to apply this to real world which is what most employers of programmers want.
My first job after school (as a technical programmer) was at an Elite RnmD organistion (our boss was the mechanical engineers president at the time) and I remember I was told one way to think about it is that "engineers" are scientists with thumbs.