The thing that struck me is "anyone who is fascinated by computers and spends all their free time playing with them can be a developer."
Back before developers were perceived as 'rich' and 'pampered' there were people who were fascinated by computers and spent all their time playing with them and were called 'nerds.' Then it became "cool" to be a developer or "you can get rich as a developer at a startup!" and then you get people who don't care at all about computers and really never have, working as developers.
My litmus test is often to ask someone when they show me a solution, "what other solutions did you consider?" If they have wandered around looking at different ways to attack the problem they are more typically 'nerd' type developers, if their response is "none, this works so I went with it, moving on." they are often just working a day job. Watching the two types of people from the late 90's to today, the people in it for the money burn out much more frequently.
I used to be snooty about this too until I had a member join one of my teams who is exactly this type of person... Treats it like a day job, and absolutely rips through well-defined coding tasks as long as I do the general solution-finding and lay the architectural groundwork ahead of time. They don't burn out either, because it's just work to them and they take regular vacations.
They're not my go-to for solving architectural-type problems (solution-finding as you call it), but I'm OK with that because their strengths lie elsewhere in terms of discipline, focus, training JR team members in coding practices, knowledge of SW project process, etc. Every team needs its brick-layers who can work hard and follow blueprints really well, and not all of those brick-layers are going to be architects. One of my biggest work-related lessons out of 2016 really.
They were passed to me as a "here, I've got this person who needs work." It's not so much that I wasn't open to it as I generally just assumed finding semi-clones of myself (passionate about all-things computing, spends time outside of work on projects, etc) was the right way to build a team. The more teams I lead the more I realize how wrong that is, it's like trying to build a human body out of all eyes or hands.
I think your parent meant it as more of a "They get their stuff done and don't need to skip on vacations to do it". Perhaps a sign of better balance but still productive?
Everyone I know that "treats it like a day job" falls down on keeping their skills up to date. This is a tough field and to do it well, you are studying a lot.
Ha I am both, it is situational for me and depends on the project impact, engineering challenge, deadlines, how tired I am... if I have to build yet another landing page in Angular then I just want to get it done. Sometimes knocking the less interesting stuff on the head in the most boring and productive way means you leave on time, have a nice night with your family, and are rested and ready for that cool or interesting bit of work you've been looking forward to working on.
I also think having worked as a freelancer made me appreciate the business side a lot more, which made me consider when to be pragmatic and when innovation or more creative thinking might be worth it.
My inner nerd is as strong as ever but I don't like to waste time.
> My inner nerd is as strong as ever but I don't like to waste time.
Love the inner nerd phrase. I'm 63 and love wasting time now because when I do my brain works on the problem(s) at had and I write better code or create a better architecture when I get to it.
I think that's true for everyone to an extent. Nobody like every single facet of technology, especially if it's the same repetitive job or a badly designed language.
then you get people who don't care at all about computers
and really never have, working as developers
You can say this about any profession though. Just look at the medical field. Some MDs have "true passion" but a lot have chosen this path because it pays well and comes with high status. At least that's what my personal experience suggests.
Being a programmer meant not making all that much money.
This was true as late as in the 1980s. Before Gates, nobody rich was also a programmer. People like Ross Perot were not programmers.
Whatevs about it "being cool". I can certainly understand being interested in computers, but ... it's hardly what the cool kids do, what with they Camaros and 6x9 speakers and 8-track tape :)
Ehhh, it depends. If you're being a perfectionist and constantly trying to find the "best" solution, that'll make you burn out too. Certainly do your work in the design phase rather than code phase as it saves you time overall, but don't obsess over unreachable "perfect code".
A bit of background: in Austria, many people do an "Apprenticeship" ("Lehre") instead of going to high school. You work at a company and visit a vocational school (about 20% of time).
This is great for practical people -- less theory, more real world experience. But there is a major downside: If you didn't go to high school, you are not allowed to go to university without first completing preparatory courses that can take years.
There is also an upside: If you've worked for at least 4 years, and are under 30 years old, you automatically qualify for "Selbsterhalterstipendium", which is around 700€ per month to cover your cost of living while studying at university (you don't have to pay this back, and there also is no tuition)
Thank you jakobegger to add those additional information. May I should also mention that the study fee was only about EUR 360 per semester, so no student debt.
Same in the Netherlands. It's changing, but when I went to "high school" (age of ~12) you could go to a vocational school to become e.g. carpenter, electrician, etc. When you are 16 you are set to get into that profession. You will still attend school until 18, 1 day a week. You can also level up and go to a higher level vocational school all the way up to university.
The German style vocational track that effectively locked you out of going to university later was ruled illegal by the EU so those systems had to change.
I did an apprenticeship in high school, Georgia has an official program.
I got to leave school early, work the internship I had already found, develop professional skills, and get paid. The only requirements for the program (for school credit) were to log hours and write a few essays.
Of course, maybe the economy as a whole does better if workers can easily retrain, which would be a net gain for the tax base, so it's not really as clear as that. Explicit tax costs aren't the same as actual costs. ;)
For instance, if a worker loses their job and wants to retrain, one policy (that of the united states) forces them at the worst possible time to take on additional debt, and one (that of austria) socializes the cost so they can more easily find work in the future. I'm not an economist, so I don't know the actual effects, but I wouldn't be surprised if the austrian approach would help US rural manufacturing communities a lot to our collective benefit.
Again, I made no qualitative statement about whether the system is good or bad. I merely pointed out that there are costs.
You are arguing that the costs are worth it. Great. I don't want to have that conversation online again. You have acknowledged that there are costs. We are in agreement.
I understand, but I don't think anyone would deny that, there are costs everywhere. The more useful discussion is to understand the balance of costs and benefits, but I accept that you're tired of having the same conversation over and over again.
When I went to "high school" in Sweden in the 90's, you could choose between a few theoretical, three-year, "college-prep" programmes, or a multitude of vocational programmes that would pretty much land you a job straight out.
But in the 2000's sometime, our glorious politicians decided that it was "unfair" that students who chose the vocational programmes couldn't go straight to university, so they were all changed, a lot more theoretical subjects were added, such that everyone would be eligible for college.
Naturally, a complete disaster, because the kids who previously chose vocational programmes because they were really tired of school and wanted to do something else, didn't do well in the new programmes and started flunking out en-masse instead.
I hear there's talk of going back to the old model again, but that's a decade or two "lost", because of political short-sightedness.
Yes, it's better to get your population college-educated than not, but you can't force people to do it. If people want to quit studying after elementary or high-school, let them! And if they want to go back to school after a few years, take them in again!
I see the same across the pond in Finland. I was myself fitting very well to a theoretical elementary school but I could see how other people were totally frustrated by being fed with theoretical subjects (including that mandatory Swedish :) and not having practical training for things wehere they were really good at.
Not everyone can go to college, and not everyone needs to. Having a well-educated population is different from having a lot of college degrees. Alas, many politicians see it as "equality" that everyone's pushed with college-type qualifications. The only possible result is that it just lowers the bar and gives us more drop-outs and frustrated people.
> Daraus ergeben sich auch die zwei wesentlichen Anspruchsvoraussetzungen, die „soziale Förderungswürdigkeit“ und das Vorliegen eines „günstigen Studienerfolges“.
That's from their page, for me this looks like you have to pay it back if you, for example got bad grades, in fact I can ensure you, that the limit is 50%, if you screw up in more than 50% of your courses, you are done.
There is a difference between paying back and continue receiving the stipend.
In general, you need to complete around 50% of your courses to continue receiving the stipend next year, but you only need to pay it back if you drop out in the first year and have completed less than 25% of the courses. (Exact numbers depend on the type of program you attend)
As far as I can remember I had to finish my studies in a certain time frame, I think plus max 1-2 semesters (günstiger Studienerfolg). Not finishing on time would have ended the scholarship. And in terms of "soziale Förderungswürdigkeit" I think a was only allowed to earn a certain amount of money on top of that scholarship. If I had earned too much I think I would have had to pay it back (or parts of out) for the current year. But long time ago, I had an appointment with the "Studienberatung" in Klagenfurt who answered all my questions, fantastic service!
It's kind of a bummer that she knew she wanted to work with computers the whole time but her parents thought it would be more responsible to be a secretary. Glad she got there.
Yeah, I don't understand parents trying to curb aspirations in favor of practicality. I can understand if she wanted to do something that was ambitious + risky, but it's just computers. There's been nothing risky about getting an education in computers for 25 years now.
And guess who always had to fix my parent's computer in the end... Finally my interest in computers was useful xD ;-) they are very proud of my career now and are a bit of envious when I can travel the world for some SAP events :D
It might be some kind of weird older generation disdain for computers. Graduated high school in 2005 in Estonia, some of my language teachers and relatives pretty much looked down on anything computer-related and saw it as only 'playing around with widgets'. Of course, come 2009, that attitude had changed a lot after seeing that the IT-sector was the only one still hiring.
An instructor told me around 1977 that there was not going to be much need for programmers in the future, because every piece of software that was needed had already been written.
I like to rephrase statements like that in the form of: "Every possible problem and need already has an automated solution that has been mechanized and made aware by everyone on the planet."
No, it makes sense, go for the thing that will reasonably make you enough money to be comfortable and independent.
It's funny though, for me an education in computing was the practical thing. I have a science degree too but I had next to no intention of being a professional scientist.
I see. Well, if one is going to do that as a parent, one should at least be sure to understand what the practical considerations actually are. In this case the parents got it exactly wrong.
This was still a somewhat big issue for me when I was young. I'm in my mid twenties and my parent didn't really believe in tech until very recently (my success in the industry played a role in changing their mind), now they use the internet, stream content through the TV, play games on their phones, Facebook and Skype... This wasn't the case 10 years ago, though. I had to fight really hard to get an internet connection at home in 2004! Investment in computers in my household was minimal (In hindsight, I wish I had been more proactive about this - I missed a lot of opportunities). They didn't really believe in a tech career - My dad wanted me to follow a military career like the one he had!
It wasn't until I moved out and started paying my own bills that they realised I might have been on to something. Essentially, my parents believed computers were for video games, a tool for kids to have fun. Even when I showed interest in areas like programming or graphic design.
Another good example of someone learning to program on their own because they wanted to and then leveraging that experience to get a job doing it professionally. The big secret to learning to program is that there is no big secret. It's basically a glorified trade job and everyone already has the tools in front of them.
This. As a guy who went "From Carpenter/Electrician to Software Developer: The Hard Way", there are numerous parallels with the trades.
In the trades, there are the general contractors who submitted the lowest bids and hire nothing but the lowest bidders. Everything is rushed, and the poorly crafted McMansions are the result.
Then there are the true craftsman. The dudes who stop every few minutes on the way to their job site to point out the sloppy, incorrect work to the younger guys. And you want to talk about "code review"? These dudes would relentlessly hammer the methods you used for any task, to ensure you did it efficiently and cleanly. Most people, for instance, have no idea how to efficiently use a shovel to dig a deep hole. There is a technique to it that makes it much easier, faster, and less tiring. Abstract that up to every single task on a construction site and you can begin to understand what these folks knew.
Of course, the majority of construction jobs nowadays will have you working for one of the "quick and dirty" companies. Even if you are a true craftsman, you will be at least somewhat surrounded by sloppy workers who never learn proper technique.
It's kind of like looking at code written by the really bad outsourcing companies who hire overly specialized people who only know recipes.
Oh wow, a lot of parallels. Pair programming and code reviews taught me a lot. When pair programming you also learn a couple of new short cuts, new command line tricks, new ways of debugging,... Without the experienced coders our code base would have been a mess. And congratulations to your career switch!
It certainly is, but like any trade job, it requires motivation to learn it. And it evolves at a rate no other field ever has, so you have to be mentally invested for the long run to succeed long-term. It's a bit harder to be a one-trick pony developer (although it's possible).
Most trades can be taught to anyone i think programming requires a certain kind of mind set to begin with or but another way an already analytical thought process. It's why a lot of grads that jumped into the field to make tons of money have trouble with the actual work. I am not saying it requires a special snow flake but it does require abstract thinking and that can't be taught to everyone.
This makes me suspect you haven't had much exposure to trades. Getting good... really good... at welding, or cabinetry, or stairbuilding, takes at least as much dedication and skill as getting good at programming.
Omnius didn't say that this anyone will be good. The same applies to
welders, woodworkers, and all the rest of craftsmen.
Note that there are plenty of programming jobs and tasks that are boring,
repetitive, easy to do, and of little impact to the underlying system, that
really need to be done by human. Things along the lines of modifying a report,
extracting some data on a request from other departments, or adding a button
to an Android application.
Somebody still needs to do them, because they're often virtually impossible to
automate away, but you don't want to waste a really good programmer on
something like that, and a really good programmer usually will not want to do
them either.
I disagree. There are crafts people who do awesome woodwork, but woodworking is a hell of a lot easier to learn that software development. Also, my dad was a welder, a very good one, but most of the welders he worked with were drunk fools and did 'acceptable' enough work. If you have half a brain you can learn to weld and even fabricate metals. I've been in that world and I know exactly how smart those people all are (hint: most dropped out of high school).
I do believe that the very basics of programming can be taught to everyone, like you said. I think everyone should be able to learn the basics in school (or elsewhere). We are surrounded by software, coding is like a new literacy.
But I also think not everyone will like coding. It is kind of abstract but also creative. People have different interests and silks: writing, coding, drawing, taking pictures, sports,... and that's ok!
I heard about 10.000 lines of code in one function at a job interview. I did not accept that job offer and I am quite happy that I don't have to maintain this... This is a serious lack of craftsmanship! A little bit of Clean Code for every programmer please... But I am drifting a bit off topic now.
I've found this pretty frequently at every corporate workplace I've come into. Pretty much every job I've had involved heavy refactoring of the code base for the first month or two. The worst I have ever seen was at my current where I discovered that for every new function the old dev added, he had copied and pasted the entire code from the previous function and then added his new stuff at the end. The last function was over 20k lines if I remember correctly.
I actually like seeing my job as a craftsmanship, because (at least in my native language) there is a certain "honour of doing good work" connected to it.
Also, no shame to work a trade job at all. Not sure where people get that idea?!
I honour every trade job! And as an office worker (secretary/ developer) I really miss to create something physical or with my hands. I started to create my own feminine developer t-shirts (NERDpraunig.com), something I can touch and wear.
I don't care which profession someone chooses and whether it is more brain or more physical work.
Nice in context link drop :) Consider adding a link to the medium article (aka a blurb at the bottom "visit the authors site at ...") to generate some traffic.
Honest question: What is the difference between a trade job and a profession, and why is software development more similar to the former than the latter?
That was a great read. Held back by parent's preferences into a secretary position, starts experimenting for fun/laziness (many great works started that way), keeps improving, fight the fight in college, and now at SAP working with serious tech. Congratulations on making it to finish line, Denise!
So, you've worked from Excel to GUI's to databases to web stuff. You plan on trying a new paradigm of programming or what for the next level?
Note: Also cool you did karate on the side. I got my start in DOS apps (QBASIC), doing Windows apps in VB6 in mundane, forced position, and karate on the side. Built new things in between assignments, including learning heavyweight stuff, because I was bored with VB or too lazy for some tedious task. The similarities in where we started probably added to my enjoyment of it. Also, I learned a new way to do a frown in text. I'm sure some tech project or new JS framework on HN will give me a use for it in near future. ;)
Thank you very much for your kind words nick! A bit of bragging, I am also quite proud to have a black belt in karate (Shotokan, 1st Dan). Currently I am doing native development (iOS with Swift) at work and I really love it! As a JavaScript developer Swift feels very familiar (and you don't suffer from the current JavaScript fatigue ;-)
Cool on the Black belt. I did Shotakan, too. I stopped just before Brown since I discovered Bruce Lee's teachings along with Ninjutsu & military styles. Pivoted into those to learn different things. I keep recommending martial arts to people in general sense the mental agility, toughnes, & determination pays off in other areas.
Including I think in programming when trying to solve problems or especially debugging failures that lead others' libraries you just had to use.
I don't think you can be a developer in 8 - 12 weeks, as mentioned in this article. Software Development is a skill as much as anything else, and there is no time frame. All you can use to assure yourself is if you have practice, and the confidence in yourself by that practice. For some people that confidence comes after a year, maybe even two years. But then again, that confidence can even come in 2 months.
You can be a junior developer in 8 - 12 weeks. It's not guaranteed, though.
I worked with a guy who came through a bootcamp. Before he did it, he'd learned enough PHP to build basic sites, so he didn't come in cold. In the bootcamp, he learned Rails, and proper development habits like TDD and source control. He was a good junior developer when he started, and with two or three years of work at Pivotal Labs under his belt, he's a good journeyman developer. He taught me a lot of what i know about iOS development!
However, he mentioned that a lot of other people who came through the bootcamp with him have gone on to work at quite low-skill 'chop shop' web agencies, where they're mostly slinging HTML and CSS to match a photoshop drawing, rather than doing real programming as such. So, it doesn't work for everyone.
I don't think you can be a developer in 8 - 12 weeks, as mentioned in this article.
8 - 12 weeks spending 8 hours a day in a classroom is between 320 hours and 480 hours learning time, plus whatever additional effort the student puts in during evenings and weekends. It's plausible that a 12 week bootcamp could equate to 1000 hours of structured development time with a decent mentor. There are 3 year CS degrees that give a student far less.
Sure you can, for a narrow range of things. There's value in getting someone to the point where they can grind away on different bits on a website, prototyping mobile features, diving into bugs, etc.
But in general I agree with you that there's a big jump from enthusiastic newb to experienced veteran. It took me a couple years to figure out all the stuff that came after knowing how to code.
Yea, I went to one of these years ago just when they were starting up. A couple of the students were very impressive at the end of the 12 weeks, but I was not. It is a lot of information at an extraordinary pace. I found that I could not sustain more than 11-12 hours a day of work, taking some of Saturday and all of Sunday off. I had no social life during this period outside of the camp, but did get an beginner level job offered to me at the end of it. It still took years before I felt comfortable saying that I was a developer.
That's a great transition, congrats to the author. My wife's mother also went from a secretary to the COO of a multi-billion dollar real estate company. Similarly, the current CEO of Xerox, Ursula Burns, was an executive assistant at Xerox. Although rare, it seems like things like that happened a lot more often before than now. I'm not sure if it means that as a society we have more opportunity or that we are more pigeonholed in our careers. Maybe it's the free-agent nature of our employment these days, but I don't picture execute assistants these days ever getting the opportunity of jumping into something completely different and rising to the rank of C-level.
Not to take anything away from Ms. Burns, but it sounds like her "executive assistant" job was atypically senior; she was promoted to it from product development jobs she'd been working at Xerox for many years prior.
> There are also a lot of developer bootcamps: within 8–12 weeks you can become a developer. I think this is great if you want to become a developer within a small agency or working in house. Those „fast tracks“ mainly teach you how to code, but not other important stuff like software engineering, algorithms and data structures, patterns, databases, theoretical stuff about computers and so on which you would need in bigger projects. Bigger companies mostly want you to have formal education. The same is true when you want to climb up the corporate ladder. Universities don’t really teach you how to code, but they teach you timeless things! I never regretted my hard way, because I learned so many different things.
While it's true that a lot of organizations still put a lot of value on a traditional education, the idea that going to a bootcamp qualifies you for work "within a small agency or working in house" just seems condescending. I work for a fortune 500 company and we hire bootcamp grads all the time, many of them have gone from apprentices to junior to mid level engineers in just a couple years, they're fucking fantastic.
I strongly feel that getting relevant applicable skills is essentially to starting a career in software engineering, and that more theoretical skills can then be acquired along the way. I've seen it several times.
That sounds fascistic! Do you mentor them? Or are pair programming and code reviews part of your company culture?
I can only state my perception about required qualifications I saw in job postings; big companies: university, small companies: skill A, B, C.
We have apprenticeships where they work under a senior engineer for 6 months, during that time they're moved around the engineering team in different capacities to help them soak it all in. It's a really fantastic program.
Another Delphi person!! Yay! I spent so much of my life writing Delphi code. As a teenager. Basically from 12-18 I wrote Delphi/Pascal. Hundreds of stupid little Windows apps (and some stupid big ones).
I ran into the same sort of thing you did re: Delphi jobs. I was pretty sad, honestly, having started in the original Delphi days (version 1!) and going to 6 I had gotten pretty good at it...
Well done. Interesting that you couldn't get a job coding in Delphi after you won the competition. I remember back around the same time, here in Australia there used to be quite a few Delphi related jobs around. Perhaps it was different in Europe.
Did you consider writing a stand alone app in Delphi that you could package and sell?
Well I just studied the local newspaper and looked for development jobs, but there were only C/C++ or Java jobs. When looking for jobs across Austria it was almost the same: no Delphi/Pascal in sight.
I had no app idea back then, that would have been great... Now I know better, I currently code in Swift and have a few app ideas :-)
My mother worked with someone well above this woman's age who went from basically the department admin (admittedly, in IT with a programming group) to what was apparently a pretty solid Lotus Notes admin, though she did a bit of job hopping in the process before ending back at the same company where she'd started.
Many administrative jobs probably offer a variety of paths that could lead to this. The person working can be someone who does the job as presented to them, or they can be the person who finds out what's needed and figures out the way to do it, learning along the way. An awful lot of programs are written because someone with the skills wants to automate something they find boring.
I really don't think the 8-12 week code camp means you are a truly competent developer. Sure you can hack around on x or y js framework of the month. But data structures, algos, big O...all of that comes into play at some point as a software engineer. You don't use it every day, or even every week. But it does happen.
And tbh, you can really tell the quality of candidate of code camp vs 4 year degree. We hired a code camp candidate, just to see how it played out. It didn't work that well.
TL;DR there are a lot of incompetent developers out there.
This isn't a comment about the author, as much as it's about something she said.
"Today you can take a lot of programming and Computer Sciences courses online. Everyone can be developer! There are also a lot of developer bootcamps: within 8–12 weeks you can become a developer."
This is a very dangerous line of thinking. Some people have convinced themselves that they are competent developers because they went to a bootcamp. And they might have just enough domain knowledge to convince a company with poor hiring practices that they're worth hiring.
I inherited a situation like that (this dev was hired a few weeks before me). After a few weeks it was painfully obvious that this guy was a detriment to the company because of his lack of coding ability. For reasons above my paygrade, we couldn't fire him immediately, and eventually we took all responsibilities away from him. We paid someone to come in and not do work for us.
I've interviewed dozens of developers since then. The one's coming from a bootcamp (or similar situation) have no computer science skills. They also have no problem solving skills; they're unable to break through the box that they were taught in. Most companies can't afford to hire a developer who knows one thing, and one thing only.
Now, we've had 4 year university graduates with experience in the field come in from top schools with degrees in CS. A (scarily) large percentage of them are incompetent as well, though not to the degree of the bootcampers. They're typically serviceable though.
Not everyone needs to be a senior developer on day one. I know I've got plenty of work which isn't making the best use of my skills but still needs doing, so the next hire will probably be a bootcamp graduate who we can slowly train up, and who will find the grunt work interesting while we do. We get the easy stuff done for less, and they get to develop their career, which seems like a pretty good deal to me.
It is my thought as well on those bootcamps, you lack some important CS skills. But there are different coding jobs out there: I think you could easily create some nice, small websites or WordPress themes afterwards, your own app, small freelance work, things only you maintain, but doing "serious" coding in a team on a bigger project after a few weeks? I don't think so... You'll need a lot of mentorship, maybe an internship... May those nano degrees are a better choice if you add some CS skills on top off it.
Most, not all, but most of the good developers I've known learned to code when they were teens. CS skills have been discounted endlessly compared to other engineering professions solely because it doesn't cost anything to learn. Other forms of engineering cost a lot of money to learn beyond the knowledge required for the job.
That doesn't mean software dev is any easier. And, it's great that CS has such a low barrier to entry, and hopefully open source keeps it that way. Unfortunately the same trait makes it sound like "something anyone could do". Anyone hiring in the industry knows this is not the case.
The same trait results in 80% of those calling themselves "developers" being radically incompetent. It's one thing if you're electrical engineer that works daily in Cadence doing LVS and DRC, your license alone could cost 100k a year. Contrast that with someone who's git cloned react-starter and setup a website on AWS. The barrier to entry is so low for comp sci that credentials and accomplishments mean little, and interviews are absolutely brutal as a result.
So we get to where we are now. Interviews mean everything because degrees, references, and personal accomplishments mean so little in CS. The interview is your gateway rather than a solid degree program for other engineers.
How do we fix it? Making programming less accessible is obviously not the right way. We need a solid accreditation program like longer established professions have. CS is very new relatively (the first programmers are largely still alive, which is astounding). God help you if you go to an unaccredited electrical or mechanical engineering program, but the large majority of CS programs aren't accredited at all. Employers need to know which schools are good beyond the top 20 so they can hire effectively, and engineers need to know the same to decide which program they want to attend.
It's going to be a vicious cycle until that happens. Endless "CS programs" that don't teach you anything. Borderline scam bootcamps (some are good, but who?). Shaky employers grilling the hell out of anyone that comes through the doors. It's going to suck for everyone in the space until we have some formal definition of someone thats been properly trained. Take the bar exam for instance; In most states you can take it without any schooling, but only those truly knowledgeable will pass.
Someone that passed the bar? A lawyer. Passed your boards? A doctor. Passed CS degree program at school X? Who knows.
Understanding the computer science underpinnings are fairly useful. For instance, what if you are unhappy with the rendering speed of React? Rather than faff about complaining about it, you can just pull out your textbook, re-read that chapter on graph algorithms and you too can implement your own virtual DOM that calculates the least set of changes to apply to the directed graph that is the browser DOM.
That's how we end up with projects like Preact, Inferno, etc.
Now does that mean you need to read the latest papers, and be a proper computer scientist? Nope. I find that reading papers from the 70s and 80s will take you pretty far. Just rip and reapply to new circumstances.
I am a web developer.
A lot of code that I write is 'good', but its hardly clever or original---it's a simple reapplication of old practiced done 100 times in desktop GUI applications, now applied to the web.
I found that a lot of old-school GUI developers never really crossed over to the web, so a lot of that knowledge has been lost to the community at large. You can still find it in text books though :)
I have a graduate degree in CS. I'm well versed in most aspects of the field. I pride myself on writing clean, efficient code, and architecting correctly. I also have a learning disability (dyscalculia) which makes certain things difficult (discrete math, calculus, etc...).
The fact that CS is based on mathematic principles does not make it a math degree (although that did make things challenging for me at times).
> The fact that CS is based on mathematic principles does not make it a math degree (although that did make things challenging for me at times).
But in order for it to be a useful degree you need to have math as supporting subject. This is the same as if you want to be molecular biologist you need to know a few semesters worth of chemistry otherwise you'd be given endless hard time, which you seem to understand.
I studied math at uni but because I haven't studied enough it always is so much harder to grok all important things in programming and CS. I would argue that it is a huge roadblock for anyone wanting to become any good at CS, but then again there's programming and there's 'programming'.
"But in order for it to be a useful degree you need to have math as supporting subject."
My university allowed me to make a custom degree that did not include calculus and didn't take my discrete math grade into account. I'm not what you would call "well-versed" in anything math related. I understand the theory for a few things I've looked into but that's as far as it goes.
In all of my career (~10 years) I've never once found myself at a disadvantage because of it, and it's never held me back from doing or understanding something.
I'm sure there are some areas of the field I'll have difficulty with (low level graphics, etc..), but even then I find that with enough hard work and an alternative approach to understanding the problem I can get things done.
it's a big field, but so is electrical/mechanical/structural/civil engineering.
I think they'res enough basic skills in common with different flavors of development that there could be a common set of core skills and concentrations or special accreditation for the unusual stuff
A useful accreditation program would be nearly impossible to create. The most important qualities (IMHO) in a developer are adaptability, collaboration, and creative problem solving, not technical prowess. That's why interviews are so rigorous— it's largely subjective whether an interviewer thinks a candidate will be a good fit.
Canada is actually the closest to having an "accreditation" for Computer Engineering if I remember correctly. I have never interviewed in Canada so I cannot tell if your school/degree matters that much, but not everybody can consider themselves software/computer engineer if they don't have the degree going with it. Once again, I don't know how this is in practice.
In Canada, representing yourself as an "Engineer" is like representing yourself as a "Doctor". There's a professional organization that gets to say who is and is not a member. That includes "software engineer" (it does not include train engineers, btw). There are, I think, a number of legal privileges and responsibilities that come with that. I dunno, I'm not an engineer.
This has almost nothing to do with "software engineering" in practice, except that in Canada we generally call the people who write software "developers" (or "coders" or "programmers"). If a given company calls their developers "engineers", it's code for "we're an American company (and we don't respect the law (until APEG sues us))".
I do not. That article, which is remarkably poorly written, has very little to do with what I'm talking about. I don't know how to concisely be a lot clearer than what I said.
Look, in Canada, as in the U.S., and to the best of my knowledge in most jurisdictions, there is a concept of professional accreditation. There are "professional organizations" that have memberships, and obviously the ruling on who is and is not a member is determined by the organization, which is all pretty normal. What's interesting is that national law enshrines certain branding around that organization. For example, in most countries, calling yourself a "doctor", without any justification, is a crime. In particular, representing yourself as a medical doctor, in a way which might mislead lay people, is "practicing without a license". In Canada, representing yourself as an "engineer" has similar rules around it. Compare with e.g. the UK situation, in which the word "engineer" itself is not legally protected, but if you call yourself a "Chartered Engineer" without the permission of Engineering Council UK, that's a crime.
Almost completely unrelatedly, most academic disciplines that have related professional programs, such as medicine or law, have more than one stream of post-graduation education. One stream is intended to be primary or supplementary education for working practitioners in the field, the other for academic study in the field. For example a LL.B. (a.k.a. a J.D., as title inflation is commonplace) is typically taken after some kind of bachelor's degree, but is really more like a second bachelor's degree than it is like an M.A. or M.Sc. or Ph.D. or any other academic master's degree. If you want to do such an academic track, you might take a B.A., then an LL.B./J.D., then perhaps an LL.M. or LL.D. or Ph.D. in law. That's one bachelor's degree, one professional degree, and two academic graduate degrees.
Back to Engineering, one might take a B.Sc. (or B.Ap.Sc. or whatever) in Engineering, perhaps certify to become a professional engineer, and then one might choose to take additional formal education. If one is professionally-oriented, some schools might offer a professionally-oriented Master's degree for you. That is different from an academically-oriented Master's, and each school that offers both will have some way of disambiguating them, which is probably not fully standardized from school to school, even within Canada (or any other jurisdiction). Perhaps call one a Master's of Engineering, and the other a Master's of Science in Engineering, whatever. That's what your article was alluding to. As for its list, it only (non-exhaustively) lists countries with equivalent degrees by other names.
All of this stuff about graduate degrees is irrelevant to jrm2k6's comment and my reply thereto. jrm2k6 was mentioning that regulation about the word "engineerig" is stricter in Canada, and my reply was that that's mostly not relevant to the practice of those who write software.
This is exactly how I reacted when reading that line. Everybody can become a developer, yes. Everybody can become a good developer quickly, most likely not, and that applies also to people coming out with a formal education in CS, not only bootcampers.
I don't understand fully why so many people think that about coding, but not about other fields, like cooking/building/who knows.
People have just as much access via youtube for cooking tutorials but people are _not_ flocking to be chefs. For the cost of a Macbook you can definitely get a pretty decent kitchen + laptop and also literally feed yourself delicious meals... it's the money that brings people to tech. Full stop. I always tell my friends that I got lucky that my passion also happened to pay well. Because if I wanted to be a chef, the road is much harder to make the same money.
I've said this before, but Python is dangerous in this way. You can learn how to write an executable Python script in a few hours, which if you do this for a few years, you might be convinced you're "fluent" in Python, when in reality you know nothing about how to build and deliver quality software.
Sound like Java also. Python is fairly easy to at least learn the basics of how its cogs are spinning. I'm not saying it can't happen in Python but to me it seems that it happens more often in Java community.
That's completely backwards, Python bills itself as the "scripting" language, whereas Java has a reputation for enterprise, and also has... more static typing and more general verbosity.
It's posted on a what looks to be an feminist blog, I don't think they care too much about quality.
I also don't think you much chance, to become a good developer if you are not practicing it at a younger age. It's just like with sports and languages.
I am honestly shocked by the "today" in "today you can take..." I grew up in India. In the 1990s a very common career path for people who didn't major in CS/EE/math/etc. was to attend non-university training in computers and programming. There were these institutes in every neighborhood and I recall at least half a dozen national-chains who'd advertise regularly in the newspapers, etc. There's at least one publicly traded company, NIIT that has been doing this for 30 years now https://en.wikipedia.org/wiki/NIIT
I don't know if it was substantially different in the US.
Ok. So I started reading this and just couldn't. Too many -comments and I just couldn't follow the article flow. Kudos to this person for putting in the effort to do what they want. I just can't get over the writing style.
English is not my first language, sorry for the grammar mistakes, I tried my best :-) I asked a native speaker friend to help me to fix it ASAP. I will pay more attention to this in the feature! Thx!
I'm usually the first to pounce on such errors, but I actually liked the writing style, and the story - inspiring, particularly for those of us who are outside the usual career path. I think the message can be more important than the presentation. Well done, and thanks for the inspiration.
People obsessed with grammar more than content show up to critique plenty of things here. Just ignore them. The presentation was better than many "how I got started or hired" stories just because you wrote it in a way that was fun to read.
I actually liked the way the story was told and the errors didn't bother me. I was able to get a sense of how excited you are about your new career! :)
Hey, don't worry about it too much. Probably a few bits of grammar or phrasing that could be tweaked, but it's perfectly readable as-is. I spent four years teaching English in China, so I've got a pretty good feel for the various levels of English fluency in non-native speakers - you're doing fine, trust me :)
Really, about the only thing that tripped me up reading that was the German quotation marks, and that's just because I'm an American :)
Congrats on your progress, and thanks for sharing your story. Good luck in the future!
She's from Austria, so English is not her first language. Guess a mistake or two in regards to grammar is the price you pay for broadening your horizon ;)
So quick to feel offended. I had nothing negative to say about her or her story, just that the story was hard for me to read. It's always nice when somebody writes in a language that isn't their native language, but that doesn't make it any less difficult for myself or others to read. Over the last few years I've come to realize that a native-born European speaking English isn't quite the accomplishment it once was. With the prevalence of English in the media and on the Internet, the teaching of English from grade school onward, and the opportunities to speak with English speakers on a regular basis makes it quite easy to pick up the language. While in Spain I was able to really improve my Spanish speaking skills, but upon returning to the United States those skills mostly deteriorated, unfortunately. Korean (I lived there for a year) is a much more difficult language to pick up. I'm very impressed if I meet someone who can speak Korean, Japanese, Mandarin, Arabic, or Persian Farsi and ALSO English, French, or Spanish.
I don't really think that the article, grammar mistakes or not, add to my horizon in any significant way. I've helped people in similar positions over the last few years, and understand well what goes in to it.
I hate to go on the defensive here, but snarky comments like this need to be rebuked. It seems to me that this is the type of comment that goes unchallenged because it feels good, but underneath the surface the assumptions are rather weak.
I totally get your point! It is also hard for me to read articles by Non-German people. In our SAP community network (SCN) we all share what we know in English, most of them are not English native speakers. I can't tell the difference what is right or wrong. I will try to get native speaker help for Medium and learn a thing or two along the way ;-) Thanks!
Working with germans where all documentation is written in English, everyday there is a "cook with you" situation for me. But as I learn more German, I understand better the documentation :)
Back before developers were perceived as 'rich' and 'pampered' there were people who were fascinated by computers and spent all their time playing with them and were called 'nerds.' Then it became "cool" to be a developer or "you can get rich as a developer at a startup!" and then you get people who don't care at all about computers and really never have, working as developers.
My litmus test is often to ask someone when they show me a solution, "what other solutions did you consider?" If they have wandered around looking at different ways to attack the problem they are more typically 'nerd' type developers, if their response is "none, this works so I went with it, moving on." they are often just working a day job. Watching the two types of people from the late 90's to today, the people in it for the money burn out much more frequently.