7 ms·
When I was an intern at Apple, I somehow finagled my way into some long-time manager’s backyard cookout. A lot of Apple old-timers were there, including Blaine.
by sbuccini 6y ago
When I was an intern at Apple, I somehow finagled my way into some long-time manager’s backyard cookout. A lot of Apple old-timers were there, including Blaine. Really neat guy and a great raconteur. That’s when I realized engineers of that era were cut from a different cloth.
- MisterKent 6y agoCare to elaborate?
- dleslie 6y agoMany of that era are/were formally educated as electrical engineers.
- justapassenger 6y agoI’d dare to say that there were educated as engineers. Majority of software engineering courses doesn’t really teach you how to be an engineer. It’s much closer to trade school than proper engineering.
- keyanp 6y agoCould you elaborate on what it means to you to be "educated as engineers"? What qualities or learnings are stressed in that model that you think current CS education misses?
- simonh 6y agoNot the OP, but Computer Science is a scientific discipline not an engineering discipline and is generally taught as such. Unless you take specific Software Engineering topics you're unlikely to learn things like unit testing, build and integration tools, how to use a debugger effectively beyond maybe a brief introduction at best, etc. If you were being taught software engineering as an engineering discipline, these should be absolute bread and butter core components of the course.
- ampdepolymerase 6y agoThere are very good reasons why whiteboarding focuses on computer science, and not the actual practice of writing software.
- yourapostasy 6y agoThis got me to wondering what an interview about "the actual practice of writing software" would look like, and having a look at Glassdoor's mechanical engineering interview questions [1] for comparison, it doesn't seem these kinds of questions would elicit much better quality candidates. I'm increasingly convinced that the apprenticeship program approach would yield far better, deeper results than how we're going about recruiting these days, but most business leadership is fiscally addicted to short-term hire-fire cycles instead of looking for ways to exert more control over their destinies. I suspect that recruiting model is an ingredient to systematized innovation (the "deeper" part I mentioned, which I use to denote internalized concepts, procedures, mental models, etc. necessary to fluent application and craft that I believe are absolute table stakes in innovation). [1] https://www.glassdoor.com/Interview/mechanical-engineer-interview-questions-SRCH_KO0,19_IP2.htm https://www.glassdoor.com/Interview/mechanical-engineer-inte...
- soulofmischief 6y agoHaving a professionally established engineer guiding and vouching for younger engineers seems like a very powerful idea, and could help combat the growing problem of a massively inflating industry bringing down average code quality. With so much demand, engineers could be very selective about who they take on for apprenticeships... businesses could be expected to help senior engineers find the time and resources to take on apprentices. Ah, what a world that would be.
- ampdepolymerase 6y agoAh yes, the standard gatekeeping post.
- forgotmypw17 6y agoI think it means thinking a problem through and actually "proving" or at least "estimating" that your solution works before you set off to design and build.
- ampdepolymerase 6y agoIsn't that what literally every algorithms course teach you?
- forgotmypw17 6y agoa) I worked in the industry for 20+ years before I took a single algos course, and so do many other people b) Algos is only a small part of it. It is not just individual bits of code, but the whole system you're designing, all the moving pieces, how they connect together, network effects, etc.
- grecy 6y agoI think I can answer this, because I studied "Software Engineering" which was a 4 year degree (with honours), accredited by the Australian Institute of Engineers. A bunch of friends at my University studied "Computer Science", a 3 year degree (no honours option). Early on our subjects had a lot of overlap - Java Programming 1, Database 1, Networking basics (TCP), etc. etc. I also had a healthy dose of Eng. Maths, and electrical eng. theory. As the years rolled on I had subjects like Eng Ehtics, real time programming, software maintenance project, OS design, large scale system design, and I took a digital electronics minor (could have chosen game programming or OS design). Towards the end I did a final year engineering project which was a full year project with 16 team members, working for a real client, building a massive piece of software from start to finish. So my degree was a whole lot of Eng. stuff wrapped around CS. When finished my friends could sling code and make software. I could do that, but I could also design a bunch of stuff, and had a lot more theory to back everything up. At a very high level, I'd say Computer Science is more about "just do the work" like a welder on a bridge or a mechanic on an F1 race team. Where-as Software Engineering is people who designed/tested/validated the bridge, or the engineers who actually designed the F1 engine/chassis/aerodynamics. I see the difference play out in the workplace all the time when CS grads (or people with no tertiary education in Software) want to get right into slinging code, and they get totally lost building so many trees until the forest is really thick. Software Engineering folks step back and actually design the forest before they build trees. This also plays out when trying to fix stuff, or even root cause analysis. Doers want to get on with doing (welding, changing spark plugs) while Engineers want to get on with understanding what needs to be done, then figuring out how best to do it.
- stevegalla 6y agoThe University of Victoria (UVic) in Canada has a CS[1] program and an accredited BSEng[2] program, which might provide a useful comparison on an engineer’s vs a scientist’s education. Disclaimer: I am not a graduate of either or those UVic programs or a CS program, and I am not an engineer (I graduated from a mechanical engineering technology program), so my comments should definitely be taken with a bunch of salt. I would say there are three main differences: Engineering specific: 1. All engineering programs share a common engineering core. Physics, chemistry, material science, math (usually these cover the material from an engineering perspective and are different than courses in the faculty of science), drafting/engineering graphics, engineering economics, and possibly some other courses. 2. An emphasis on professional responsibility and ethics. For example, what happens if a civil engineer certifies a bridge and it later falls over (there is a course where you learn this!)? What happens if a developer builds a website that leaks customer credit cards information (I genuinely don’t know)? Software specific: 3. A greater emphasis on systems and systems design, testing, projects, and few electives leading to a standardized curriculum providing a more consistent knowledge base across graduates. Comments on engineering in Canada: Graduates of the BSEng program can become registered as a Professional Engineer (PENG) in Canada. To call yourself an engineer in Canada requires that you are licensed (PENG) or in the process of gaining your license (engineer in training / EIT). In Canada, to be “educated as an engineer” would, to a first approximation, require someone have a BEng, BSEng, or BASc degree from an accredited engineering program[3]. I am sure there other accredited engineering degrees that I am not familiar with. Only having a BSEng means you are a graduate of an accredited software engineering program in Canada, you aren’t an engineer yet. Professional Engineering registration requires a 4 year accredited engineering degree, 4 or 5 years of work experience. Some of the work experience must be supervised by PENGs. You must pass professional exams and keep up with professional development. Additional details can be found at [4]. [1]https://www.uvic.ca/engineering/computerscience/undergraduate/bsc-honours-program-info/index.php https://www.uvic.ca/engineering/computerscience/undergraduat... [2]https://www.uvic.ca/engineering/software/future-students/program/index.php https://www.uvic.ca/engineering/software/future-students/pro... [3]https://engineerscanada.ca/accreditation/accredited-programs-by-institution https://engineerscanada.ca/accreditation/accredited-programs... [4]https://www.egbc.ca/Registration/Individual-Registrants/How-to-Apply/Professional-Membership-and-Licence/Engineer-First-Time-Applying-in-Canada https://www.egbc.ca/Registration/Individual-Registrants/How-...
- fgonzag 6y agoTrade school? What kind of college did you attend? Most CS curriculums I've seen are full of math (science), computer science (compilers, algorithms, etc) and engineering (computer architecture, etc). It's a mixture of science and engineering, leaning towards the science. Far far away from a trade school which would teach you practical skills (java, git, web development) and try to get you into the labor force ASAP
- justin66 6y agoOP said "software engineering." This is a separate field of study from CS.
- pwdisswordfish4 6y agoCan you point to some schools with programs in software engineering, distinguished from their CS program?
- justin66 6y agoYou'll find google a useful tool for locating software engineering programs, but okay, here are a couple: https://engineering.csuohio.edu/eecs/master-science-software-engineering https://engineering.csuohio.edu/eecs/master-science-software... https://mse.isri.cmu.edu/ https://mse.isri.cmu.edu/ You'll find Software Engineering degree programs are often connected to schools of EE, CS, or more generic Engineering if you dig into this more. And of course things sometimes work in a different way - I think maybe MIT folds EE, CS and SE all together into the same department, possibly even the same degree. I believe ABET recently deprecated their accreditation of undergraduate programs, and I don't have any idea what the implications of that are for SE licensure, but there's a possibly out-of-date list of ABET-accredited SE undergrad programs here: https://www.softwareengineerinsider.com/abet/abet-software-engineering-programs.html https://www.softwareengineerinsider.com/abet/abet-software-e...
- pwdisswordfish4 6y ago> You'll find google a useful tool for locating software engineering programs, but okay Not the question asked, but the quality of the answer is about what I expected (based on what I suspected). Glad not to have made an upfront overinvestment taking the discussion too seriously.
- ChuckNorris89 6y agoYep, you really needed to know the intimate inner workings of the CPU and each digital chip from the keyboard input to the display output to produce code that would make a quality product. It took years of experience that you could only gain through hands-on work, to know how to debug hardware that's why gray-beards are so valued in hardware vs in software where people talk of ageism. When your hardware/low level software doesn't perform as expected you can't google/stack overflow yourself out of the problem, you need to grab the datasheets, the schematics, an oscilloscope, a soldering iron, hunch over patiently and devise a way to debug the issue out as no one else can help you. Hardware engineering is now just as challenging as it was back then but due to the commodization of hardware along with the rise of China and the downfall of high-tech giants like IBM, Philips, Siemens, Motorola, Nokia, Blackberry, Nortel, Ericsson, etc most hardware jobs disappeared or moved overseas and pay went significantly downhill compared to software engineering(at least in Europe).
- WWLink 6y agoYou find a lot of these guys in the space industry.
- fma 6y agoI took a Microprocessors course in college (University of Florida) where in the lab you build up an entire board from scratch...including soldering each chip and component. You need to essentially program the drivers from scratch, using assembly...at the end your board has inputs and outputs like a speaker, switches, keypad, infrared remote control...everything was in assembly and you need to RTFM to know how each chip...pin out, clocks etc work. It gives you a great knowledge and appreciate of what goes on beneath the covers. It was a grueling, but satisfying class.
- faichai 6y agoYep, ain't no better Software Engineer than an Electronics Engineer. This is particularly true for systems programming.
- kenferry 6y agoCrabtacular!
- sbuccini 6y agoMaybe we met there too? Honestly, one of the top 5 parties I've ever been to in my entire life in terms of intellectual firepower. I hope I get to go again someday.