How To ACTUALLY Become A Software Engineer

preview_player
Показать описание
Computer Science courses are not the best way to learn how to become a software engineer. That's a common opinion amongst many thought leaders in the software industry. So what is the best way to become a great programmer?

___________________________________________

🙏The Engineering Room series is SPONSORED BY EQUAL EXPERTS

___________________________________________

#softwareengineer #softwaredevelopment
Рекомендации по теме
Комментарии
Автор

I can positively speak from experience that I learned more about software development in the real world than I ever did during college.

SlowAside
Автор

I like the idea of this kind of vocational course for programmers but I also think there’s a fairly fundamental flaw in the idea that apprentices will go out into the programming world and learn good habits like the need for source control and automated tests. In reality unless you pretty carefully curate the set of companies offering placements, which leads to other problems (short supply, consistency, etc.) your apprentices are likely to learn the same bad habits as the 80+% or whatever who write the under-tested, unreadable bug-ridden spaghetti code that most of us are all too familiar with. I’ve got the impression from several of Dave’s videos that he’s so used to working in highly effective teams with talented individuals, etc, etc that he doesn’t fully grasp the strength of the drag on teams with deep legacy issues where the progressive members are trying to move closer to best practices against the current. Having said that, Dave’s ideas are certainly very useful and well presented.

juleslondon
Автор

I currently mentor two interns in my job. I clicked on this video hoping to get some tips, turns out what I was doing - just learning by doing is the way :) However sometimes I think it is useful to have little bit of theory at least before, you start. Not necessarily to be able to do the tasks, but even to communicate, for example to understand the terminology.

lukasdolezal
Автор

My buddy has a degree from MIT in CS and he has a MASSIVE advantage right now.

djcardwell
Автор

I'm 100% self taught and often know more than developers holding prestigious degrees. Software development is a craft best learned by apprenticeship. 'Nuff said.

ericmintz
Автор

Self-taught here....I learned by obtaining code fragments for simple games and modifying them. In my case, a listing on a page in a magazine in BASIC of a rocket launching off the screen using character graphics ( Heathkit H-89 ). Next came cloning arcade games - using 8080 ASM, then c. Learned by doing. And books. Today it's a lot easier to get the basics if you take a few courses online - but you have to find a project of some sort you're passionate about to really get started ( IMO ).

neilalexander
Автор

When I first saw the title of this video, my first thought was: Teach them git and tests (i was in computer science in my school, and they never showed us version control and automated tests). But the idea, to "put them out" in the world with as little as 6 months of prep, and then gather them for a debrief, show them designs, and "the ways", send them out again, and them have the wrapup - wow, that might just be genious. I never thought of that.

danielwilkowski
Автор

It's strange, I was just thinking the other day that I would prefer it if software development was treated more as a trade. Apprenticeships make a lot of sense.

HellsJayBells
Автор

I can definitely say that most hands-on experience (stuff like shortcuts, discipline, muscle memory, intuition) you can build in the "real world". But on the other hand, academic ways cannot be left out. Lecturies or insight like from Dave from @Continuous Delivery, or videos from Robert Martin as of "The Future of programming languages" or "Clean Architecture", and also books like "TDD By Example" by Kent Beck, they help get a completely new perspective. I remember that when I finally grasped the idea of Dependency Inversion, I thought a new world opened before me (and I was already coding for 10 years now).

danielwilkowski
Автор

Learning new things is a staple of software engineering.❤

GhoriBright
Автор

I'd been designing and writing computer code and designing and building hardware for six years before university, and did three summer placements designing and building computer hardware and software systems.
I then got to university and spent three years wondering when I was going to actually "do" some "actual computing". It wasn't until the third year that we got anywhere near anything that by then I'd already been doing myself for eight years.
It wasn't until many years afterwards that I realised that what universities call "computing" is not what I and my peers and everybody else around us called "computing". To us, the stuff we were doing, writing code, experimenting, investigating, building hardware, getting it to talk to each other, to us - and crucially, *EVERBODY ELSE AROUND US*, that *was* "computing". So, naturally, careers advisors sent us on to "computing" courses at university.

jgharston
Автор

As a developer married to a lawyer, I've come to wonder if the legal profession might be a good template for software engineering. Build off a base of theory (gained through a degree), then practice under one or more experienced "partners" in a firm until you are allowed to gain that partnership. It's very similar to the idea of apprenticeship presented here.

markdewey
Автор

just like in Germany we have ( in Holland ) universities and hochschulen ( HBO, "university of applied science" ). I am currently in my third year Computer Science ( CS ) of the HBO. I've been a self thought programmer for the last 15 years and I love going back to school. You know what everything means, you know where you can use the things you are learning. If you are just studying CS without knowing anything it is just words and theory.

Going back to school while working as a programmer really made me appreciate the German system of "Duales Studium". More schools should do this.

We are not being thought about GIT or TDD and yes I am very sad about that, especially because we did get al lot of recursion in the first year. I don't use recursion that much.

CS is not just about programming though, its also requirements analysis, business engineering, IT service management, process management, etc.

MrTheoJ
Автор

In the early 90's Brunel University had a "thin sandwich". First 3 years where 6 months of academics followed by 6 months accredited work placements. Fourth year was academics and final exams. Paired with the availability of large company sponsorships through the work placements it was very close to an apprenticeship. I am very happy I was able to follow this route to start my career in software engineering.

craigharris
Автор

In the USA, there's a big difference between undergraduate (BA, BS)
and graduate (MA, PhD)
.

blaiseutube
Автор

In Germany we have two kinds of higher education: universities and hochschulen. Universities are usually much more focused on theory (for example if you want to go into research), while hochschulen are much more about applied sciences. There is also something called "Duales Studium" which is basically a degree + apprenticeship and you go to work the whole first semester + every day you don't go to school. It is usually paid as well, so you don't have any dept after you finished. You have to work for the same employer for some time though.

yannick
Автор

In germany we have an internship we call "Ausbildung". Its 25% in school, 75% in company. I supervise such intern now for 10 years. Its hands on working in projects and i teach theorie. Also i so pair programming, code reviews and all the other stuff with the interns. I think this is a very good way.

blubberdiblubb
Автор

My cousin did a very internship heavy program at his university. He was hired right out of graduation and soon after got a job at Google. So, it sounds like getting real experience is the way to go.

ttrev
Автор

Isn't this the case for the tried and true apprentice system? Learn on the job by studying under a master. Incredible focus from a young age. That's how you get a 19 year old with 10 years experience. The college system is a racket

RsZ
Автор

The humanities department head would have a fit. 😅 In the mid 90s, computer science was still an exercise in abstract thinking (I was at the University of Michigan--Ann Arbor). It was a course for applied logic, but not for showing how industry worked. The move towards XP and Agile methodologies made testing almost as important as algorithm design---if you want a software engineering job that is. Fact is, the cost of not emphasizing testing costs businesses money. However, universities did not always want to absorb the costs of integrating testing into their curricula. Thus, you have a generation of folks that never learned how to write proper tests, and view programming and pure algorithmic design and data structures. Yes, that is not good for industry. However. given the kinds of problems university students in my time were asked to solve for homework it made sense.

delturge