I feel like more of us is gravitating towards full stack, I am a software dev and data science engineer, but I have been working in different roles for so many projects, it's all about continuous learning and development
Oh wow this was from 2 years ago. I have moved on to a full time back end, getting paid much more than when I was a no-stack. Learn as much as you can, then find a better company where you don't have to do four roles in one salary. Should be thankful I guess.
sorry i didn't see it, keep going like that you're doing a great job i like what you do and there are few people that admit doing mistakes and try to correct them wish you good luck in your way of helping people
Thank you Mr. Xiang for a well thought out and presented list. I've been an application and back-end developer for, let's just say, since "megabytes" were considered BIG. The only category I would add is the database programmer. Similar to a database administrator, in that he/she lays out the different databases and tables so they can be best used by various languages and applications. But more importantly, some databases such as Oracle's SQL have their own embedded languages used for "triggers", "stored procedures" and the like that help keep the database clean, useful, and responsive. These folks do things similar to embedded programmers only with databases. Again, good job on the information.
Thank you sir for your kind words. Yes, that's a great category. I know that some people do dedicate themselves to designing a database as well as using it. I've heard of pure-SQL developers(everything runs in < 25ms), and also the people implementing mongodb/postgres are definitely specialized!
You sir, not only analyzed and presented "types of software developers" rationally, but in a sophisticated and truthful way! 8. Algorithm - From "Coding" to "Programming" to "Developing" to "Engineering". Software Developing incorporates not only knowledge of physics and chemistry for the hardwares, but MATHEMATICS! Math is the logic and reasoning for ALL SOFTWARE CONCEPTS!!! 9. Embedded - Low level Languages are SOOOO IMPORTANT. ALL YOUR HARDWARES's software are hard coded to function, or else high level software will not function. 13. Language/Compiler - Many people only know how to use a pre-defined language to create software, but not understanding that these languages are already programmed and compiled in machine languages for the hardwares! 0s n 1s!
yep. difference between high-level programming and low-level programming. There is a science to surgery. And simultaneously, there is a science to even just making the surgical scalpel
David, I am a power consumer of UA-cam Video of the highest order. I’ve been asked by UA-cam several times a month to prove that I’m not a robot...which, to be honest, I might be... Once or twice a week I come across someone or something that just gets it spot on... This video and your chill energy are the perfect way to break down this info. Thank you, sir, for being awesome.
Great list! Shoutout to QA/Test Engineers! :) Also, I'm glad you pointed out the usual meaning of full-stack. I refer to myself as full-stack, but I mean that I'm comfortable all the way up the stack. So dealing with low level networking on up to being able to work with a ton of technologies well, on up to building an OS (not all coding, just can compile, tweak installation, and get it to boot.) Because of the way it was used with trendy startups it's been watered down, but in my opine, if someone hasn't had years working with many of the technologies up the stack (soft devel+networking+admin experience), I would hardly consider them full-stack.
Thanks a lot, I feel very misguided because half of my major has been end-user-facing development of applications (and backend for these apps) and I've really disliked it, and since it's been basically half of my major I've been worrying a lot that these were the only career choices and that I may have fucked up the past few years of life with my decision. Your video gives me lots of hope on finding a fulfilling job in the future as I really like the low-level more techinical side of computers, thank you!
I too agree that number 12 *Full Stack* is just a slick-sounding term for a *Jack of All Trades, Master Of None* mythical developer. One that is used to do all things barely good just enough to get the wheels moving; specially in small or underappreciating companies that love to hire the bare minimum of staff. To add insult, also at the lowest cost possible "for the experience." Better call it a Unicorn or a good salesman of him(her)self just to get the foot inside the company. Back in the 80s you could pull it off, because there were only three things to know: A single-thread, single user, console-oriented procedural language, a filesystem or local (diskette) database, and the hardware (TSRs, CR byte, serial ports and the like) it will work on. Today "Full Stack" means front-end (JS), middleware (Django), language (python), presentation (CSS, HTML5), DBMS, QA, Version Control, Use Case documenter, analyst, user support, network admin, hardware installer, OS administrator, security expert, router configurator.... Impossible to be very good at all that, much less with technology paradigms changing on a monthly basis! P.S. I'm expecting response from several loud-mouth Full Stack evangelists, all graduates of DevCons and Google searches.
Totally agree. Learn Linux, HTML and CSS (most nerds already know these) and a couple of frameworks (front end and back end), and you're a full stack dev. Boom. All it really takes is a certain personality type to spend the countless hours to actually sit and read the documentation of whatever framework you're in. Its not even about intelligence (which I think a lot of people get butt hurt when they're told that 99% of programming these days isn't rocket science). Hell, understanding AGILE and GIT/Subversion are probably harder than the actual coding and query writing needed to work in the field.
Im number 2 forsure, it makes the code look alot more organized and easy to follow for me at least when the opening bracket and closing bracket have the same amoubt of indentation. i know, i know, im a nerd :).
There are another two types of developers: Tabs vs spaces. But all that can be resolved by your IDE. All you should care about is writing your code and hitting enter at the end of your line.
Well done! You covered a good range and gave good explanations. I wish I had seen this when I was studying for my undergrad. It felt like my choices were basically back end java/c++, front end, databases, AI/research. Now I help make network cards :)
Thank you so much for breaking this down! Very informative! I'm thinking I'll start as a Full Stack to get a thorough understanding of all levels, then specialize in whichever I enjoy the most!
A Full Stack Developer isn't a generalist. It's usually a specialist who handles all the processes involved in at least one stack, from the server configuration to database design and administration, to the server side framework to html, css, and javascript. That's what's meant by Full Stack. It's the entire stack.
I really like this youtuber , when he speaks about programming he doesn't make it sound like open heart surgery or quantum physics, simple , cool, down to earth.
This really opened my eyes. I got through my first semester of college and did pretty well in programming class (C++). Then I got to thinking, what am I going to do. Should I do applications,games,or websites? Algorithms and all the abstract stuff really pulls me in honestly. Who knows maybe I will eventually get into the other stuff but right now I feel I lack creativity to even approach applications,games,or websites.
jacobmufasa interesting. What programming languages do you use? Of ifs it's using applications someone else has made, it is absolutely not programming.
Full-stack encompasses a bit of everything because someone has to have the practical skills of most of the disciplines to put an application ecosystem together. If you need someone to tell the Devops engineers what infrastructure to deploy, tell the front-end devs which framework to use and which api it will point at, tell the database developers which data models to develop, you can say its an architect, but that role is typically dealing in abstracts. The full stack developer is the person who gets stuff done, because they know how it all fits together - and which pieces are needed to make it scalable.
I think that falls under the broad category of Application development within a specific platform. So for example, if you're developing Photoshop for Mac you'd be a mac OSX application developer.
you descriptions of dev ops and full stack are a little off. Dev Ops - typically would work on the iternal software infrastructe and software used to create the software product. build systems, continous integration, scripting build and other internal process workflows, common scripts and tools for deployment and work. Fullstack - Implies the developer would be able to work at any layer of the software stack. kernel, sdk and libraries, application layer
Google, Amazon, Facebook, Twitter, Microsoft, SAS...best bet would be to get a PhD, or at least a Masters. Also pick a field to focus on, because that will help you stand out (particularly if you actually solve a real problem and get published.
I am a Control SW Engineer. Most of the time I used Visual Studio (C#, VB.net, ASP.net, WPF/VMMV). But for the systems that I work on, I have to be fluent in Ladder Logic, PLC programming, and LabView as well. Where do I fit in all these? To make it as a software engineer these days, you have to master at least 3 out of those 13+. Unlike other engineer disciplines, software engineering is very wide. No software engineer masters everything in software. There are more jobs in software than almost anything else, but it's still very hard to find software job. Because you have to find something that fit you or they won't hire you without that specific experience. When I was in college, there were only a few things to study to be an electronics & computer science engineer; C/C++, Pascal, FORTRAN, and Assembly. I graduated in the same year as MS Windows 3.1 release. I had never got to see MS Windows 1.0 or 2.0 while in college, only DOS.
learn it yourself but dont learn it because you want money learn it because you want to do something for example i got into video editing because i wanted to make a lighsaber duel video and after that i got really into it same in programming i did not start it for the money in short i think university will waste your time you can sit down and learn it from home from online courses
University will not "waste your time". That is unless you can study calculus in several variables, probabilistic algorithms with proof of complexity and neural network theory from home. Even if you could learn it at home, university will provide you with experience, contacts and a portfolio of projects created. There is a reason employers like seeing a degree on a resume. So if you have the time (and money, depending on where you live), I would say go for it.
The University is probably a strong path to success, but I would only recommend so, if you really know what you want. It's hard and the pace is fast. To really profit from it you need to fully commit to it and I mean fully. That said, if you don't know for sure, you should definitely wait with studying and either travel and/or find a part time job and while you do so chose something you want to do and then use the inet to find out how you get there. After two years you will be able to look back and know for sure whether you really want to commit to it. I promise you.
Go to uni as long as you know what you want. In some places uni will give you status and respect, however the best way to learn and get experience and master it is the real life and practice in the real world. Hope that helps mate!
As some of the others have kind of said: No. Until you actually take up programming and decide if it's for you, don't even think about dedicating vast amounts of time and money for it. And I caution you: You need to be comfortable with feeling worthless for a while. Programming is a difficult domain.
This is literally the first software video I have watched, my initial impression is that being a software developer is/can be a job where you take a look at what a company has in place and developing something to make the company/general business run more efficiently, would you say that is accurate? Thank you
i realised just how boxed up i actually am, i thought being a back end, front end and gaming engineer. i thought i could do basic anything... boy was i heavily mistaken
You could look out for frameworks, that manage your target for you and let you create one software for many devices. I am not sure how good the choices are but if you don't find anything you could totally use the Unity Game Engine to develop your apps. It does not need to be a game and it supports a ton of devices besides the consoles and home pc. A total of over 20 right now and they work on more.
Learn swift and build applications for IOS. I myself, am a front end developer and I'm learning react so I can build web applications. Both are very fun though.
Brodey Newman I mean I've been doing web development and I'm happy, but I'm curious about application developing. Also I'm a windows user and can't afford apple development.
Flame2057 Then run Linux, IOS is basically BSD. You can run freeBSD as well but the issue there being you will have more limited choices in terms of software availability.
QA is not a software engineer. Depending on the company a QA person will execute test cases given to them by the developer. Often after testing they may come back to the developer or write additional test cases that the developer may not considered. Typically a tester who writes specific test sites are writing integration test and they're often called SDETs, not QA. Typical developer write code that test their own software, generally referred to as unit test. This is different than integration testing where you must simulate software under test. This is where an SDET come in. Keep in mind QA and SDETs are usually only seen in enterprise settings. At smaller companies is the responsibilities to write integration tests falls on the developers
Well resumed, i personally also don't like the fullstack name, but it works as the swiss knife developer for startups, do a little of everything without being an expert on all that.
Just to try and put you into perspective (I hope this is of help): Any language could be used by any of these 'types,' for the most part, as well as multiple languages at one time. It's all relative to that type's current objective and the resources available to them, (a LOT of factors go into consideration here). Of course we can make educated guesses for each type. For example, if there is a mobile software developer, chances are he is familiar with Java. If you were asking because you want to figure which language you want to learn first, I recommend the following: = C & C++ = Python, then how to write/use Batch (Windows) & Bash (Linux) files = Java Eventually, I recommend to get familiar with all three. When people say once you learn 2 or 3 programming languages, it becomes fairly easy to learn any language, they are not lying. At that point, it's just a matter of pulling up documentation, then GO.
Thanks a lot jacob , but I know all the languages you just mentioned , I also know nodejs (yes I know ;-) ) , matlab , php and vhdl .I just wanted the dave to also tell what are the most important languages associated for each type of software developer which would help the audience to understand the languages better . For example , a data scientist would mostly use R , python , stata or matlab and so on for all the developer types.
I will try for you: 1. *Front-End:* He kinda says so: Javascript. additionally naturally HTML, CSS, SVG for representation. Javascript is the non-plus ultra and there are a TON of APIs out there. (Dave says framework, but I think that that is mostly incorrect) 2. *Mobile:* Any kind of high level language with Garbage collection, most likely Java, since natively platform independened. There is also swift for iOS and Objective-C, which is nowadays pretty rare. 3. *Gaming:* This requires a two part answer: 3a) Engine: The engine is similar to a framework with additional features. Since games want a lot and gamers want pretty, those engines are programmed in languages that pass on Garbage Collection and any fancy stuff that makes development easier on the cost of performance. Generally that means C++, C++ and ... C++. There are people that create some apis even in C. However C++ has many flaws and grew into an abomination over the years. Even though there are potential alternatives they are mostly ignored by the industry, mostly because they don't fit the bill. Jonathan Blow tries himself on a new language design which is catered to games and possesses performance, readability and consistancy as well as low friction on refactoring. It may very well be the future for modern game engines. 3b) Engine tools and Scripts: This is generally more aligned with game design and is used to create the world and its rules. This has often two stages: - An abstract stage that serves as an interface and describes the kind of rules that are allowed and their complexity. Mostly in use are still C++, C#, and Java for Mobile. - A specific stage that explicitly states rules, relations and content. There are several scripting languages that fit the bill: Most commonly known are lua > xml [> txt/bitmap (mostly for layouts like levels)]. 4. Back End: The Internet is everywhere and so there is a ton of software for servers and even more tons of servers on which that software runs. Because of money, there is probably nowhere more duplicate code than here. Most commonly used Languages are - Java (starts to recede and hopefully vanish altogether) - Python - Perl - Ruby - Javascript (yes even though it has script in name, it's actually a fully pledged language which on top allows easily for functional programming paradigm usage) - There is probably a ton more of which I cannot think right now. 5. Applications: Basically everything that is turing complete. Often choices are made depending on the target platform. Platform specific ones are: - C#, F# for windows - Swift is super popular right now with iOS-devs. - GNU(+Linux) has no specific ones, logically. 6. Data Scientist: - makes generally great use of functional programming languages, but the lagnuage choices strongly depend on the area of work - there is Matlab which is similar to Python but extremly good at dealing with HUUUGE amounts of data - In Machine Learning and pattern recognition they like GPUs and as such cudas and other nvidia software and their respective languages are quite loved. Visit their website to get a feel on how much they got. 7. QA / Test: - Whatever the chosen language and tools are of the main-dev team. I think that is one of the reasons why they are so underestimated. They don't get to make as many choices as others, but if you think about it, it makes their feats even more impressive. 8. Algorithms: Again fancy, functional stuff like python, haskell, but beyond that often simply C for performance because it's basically the lowest of the high level languages. Especially since their implementiations are often not complete programs but rather apis and small libraries in dll form, that can then be importet by a wide range of other languages and that way retain their excellent performance. 9. Embedded: They more often than not deal with special systems, that have very specific instruction sets and as such are one of the view groups that actually still write sometimes code in assembly or their respective low level language. I don't know a lot of embedded though and I assume that nowadays there could/should be a lot of special compilers that allow them to write c for their particular platform, if they are lucky. It also should be noted that in embedded systems it often is necessary that your code is flawless. As such, they don't use tests. Yes, you heard right. Tests are not reliable enough. There is no guarantee that you did not make a flawed test. Note, that embedded software is used in cars, planes, satellites, nuclear power plants... as such, their software is not tested, but rather mathematically proven to be flawless. Yes, all those math prove stuff, that you never really understood and thought that it was stupid and unnessecary. It's actually the most important thing in our modern world. 10. OS It's magic. The cloud looks like a lvl. 1 spark of insignificance spell in comparison. Kidding aside, thye nowadays use C/C++. The kernels out there are written in C and there are guidelines how the coding style should look (www.kernel.org/doc/Documentation/CodingStyle) and they warn you to not use complex statemenst and such. Kernel coding needs to be very clear, simple and performant. 11. Dev-Ops: A lot of it is the gnu - command line and creating appropriate macros. There is still more, but maybe Dave knows more about that than me. 12. Cloud engineering is a mix of OS and server stuff. Anything goes: www.techrepublic.com/article/10-of-the-coolest-cloud-programming-languages/ Core concepts are distribution and allocation of resources, where resources can mean anything from simple memory to fire up new servers all automated and based on need. Very powerful for scaling applications like MMO-masterservers, dynamic instancing or "single shard"(www.dualthegame.com/) 13. Language/Compiler: Since the compiler is a regular program, you can use anything to create a compiler. The quintessence is to take your text file and converting it into machine reading code. There is a lot going on and a ton of room for common pattern recognition and resolution into more performant statement sequences. With apis, libraries, frameworks, semantic validation, auto correction and partial recompilation it's one of those areas where you can work on a single project for ten or more years and the software still can profit from your advances as an engineer. Hope I could help :)
There is something which should be called Extreme Full Stack Applications Developer. These guys are expected to know it all and do it all, all within limited time frames.
I have to go through all phases for an application when ever there is need of customization. Also have to take care of errors in existing programs... M I full stack or application developer....??
+Jack F I'm currently doing a mix of application/backend. My first job out of school was a firmware role, I did academic software for awhile, also followed the trends and did mobile.
@@DaveXiang Would be great for people who want to know what tech/langs. to study on when narrowing their career path in Development, which is what I'm doing.
I think it depends where you're coming from. If you're doing this from scratch with no formal school, then I'd say web/mobile is easiest for entry and more accessible. If you can get into some program, you might be able to get into some of the more niche categories and formal training. (if you take networks/OS/security/etc)
Awesome info. Right to the point. Didn't all the different branches of software developer. I'm heading to one of "those" bootcamps next week. I don't know what branch of developer I'm interested in. I guess I figure that when I get there. GREAT VIDEO. THX
Yea, forgot about that. There could be developers who specialize in security. They could kind of fall under DevOps a little bit, but it could definitely be a thing if a system really really needs heavy security. I think IT also helps sets up and secures networks. They will do everything from set up hardware, write a lot of shell scripts, and also work with developer a bit to make sure the computers are set up probably. Their job is really technical, but I wouldn't label it as a software developer.
+Steven Garcia thank you. im doing python at school. i always hear people say contribute to open source in github but im so overwhelm by all this informations that i cant figure out how to start anything. how can i implement my raw programming skills to real world problems?
I know man, I'm a freshman CS major and I just work on building a personal portfolio building tools for myself using bootstrap framework and different backend web languages. The advice I've been given by older CS majors is to use a lot of open source project and as I get better contribute to the READ.ME file and fix bugs that I experience
The 12 is wrong, it just means he can cover the whole spectrum of skills needed to deliver an application, regardless of the skill level. Every type of software engineer can be able to "do a little bit" or be a skillful developer. The same applies for full-stack.
You have seem to have slightly misunderstood the full-stack developer. Yes, it is an umbrella term for a developer that can do many things, but still a developer with a specialty just not one that you work with exclusively. You tend not to be highly specialised but your value for any company comes from your ability to see the problem from several angles at the same time and working across the siloes of many other more highly specialised developers. A full-stack developer has a background in another field of development but has moved beyond the boundaries of a narrow definition, rather than towards further specialisation in a field. The name comes from the concept of the networking stack used in communications. The OSI model splits the stack into 7 layers from physical to application. The name full-stack developer implies one that can work at all levels.
+tworains2 Database administrators probably fall into DevOps. ANY type of software developer could USE databases to help them in whatever they're working on. Databases are so pervasive and so useful! If you're actually the developer creating the database, e.g. you're actually working on Postgres, then you might be considered an Applications Developer. In the end, the Database itself is an application we all use to help us.
Embedded specifically refers to embedded microcontroller programming working closely with the hardware. This has a lot of overlap with electrical engineering. For example you could work alongside engineers who are instrumenting autonomous vehicles handling all their sensors in the car.
Very helpful! I'm a recent college grad with some programming background (CS minor) and recently decided I want to become a developer, and needed to understand the different types. I realize that I prefer back-end development. Compiler development also sounds really cool! Can you tell me about the outlook of the job market for this, as well as some resources to learn more about it?
Compiler developer is really niche and there isn't really a job market for it. There aren't that many developers in the world working on this. If you truly want to do that... you will have to study really hard and find out exactly how to contribute which will be very specialized. This also requires high level of skill. If you are just starting, I would continue with some application development until you get really comfortable with that.
Could you tell me the difference between Computer Engineering, software engineering, and computer science? Also, do you think a person that without much code experience could be successful in majoring in these fields?
+Kudakwashe Computer Engineer is really understanding how a computer works. How does a CPU work, what are the major components of a computer system, how do you design various hardware components of a computer, etc. Computer Scientists care about how a computer works, but they focus more on algorithms and data structures that rely on the fact there is a computer is already working underneath them. A computer scientist will design short path algorithms, optimal search techniques, best ways to compress a file, etc. A software engineer is the most "hands on" type. This is writing software to be used in a production setting like a company or business. It's writing software that "scales" up and can be used by many people and solve real life problems. Most industry positions in software are for "software engineering". Everyone, everyone, everyone needs computer science fundamentals, but at a certain level computer science gets too theoretical and complex for most business/company needs. The people who pursue computer science at that level usually have very specialized jobs. You need code for every field, it's a basic requirement.
+Dave Xiang so could a computer engineer be a competent software engineer? My college only offers computer science or computer engineering so im trying to see which one would best equip me for a software engineering position.
+Kudakwashe I'm a computer engineer, so I hope so =) Both CS or CE can lead you to software engineering, I would just read up more about them and see what interests you more.
Thank you for this video! I've just grown interest in programming and this just cleared few things what differences there are.. I did not know what you said about embedded even though I knew some an where interested in it. Now I know a littel more and maybe can find the way I want to go.
I'm starting out. isn't a designer just a designer you get a degree in computer science and then get a master in software development? I'm thinking of learning software development but I can't find good information. tell me if I wrong,but I think it falls on what college you go to for computer science. If you learn about the machine and whatever you're good. For all 13 Subjects
1) Front End 1:14
2) Mobile 1:38
3) Gaming 1:58
4) Back-end 2:34
5) Application 3:02
6) Data Science 3:33
7) QA / Test 4:10
8) Algorithms 4:44
9) Embedded 5:15
10) OS 5:48
11) DEV-OPS 6:27
12) Full Stack 7:20
13) Language - Compiler 8:05
Landon Prewitt thanks !!
I feel like more of us is gravitating towards full stack, I am a software dev and data science engineer, but I have been working in different roles for so many projects, it's all about continuous learning and development
gd luck >> but i think if you focus on one major you will be better and you will keep good time :)
thanks for sharing. this information was very enlightening. I actually learn t something
if somebody learns how all of this is done... he is a genius
thanks for giving QA guys appreciation, always nice to hear!
=) :thumbs_up:
I do front end, back end, dev ops, and testing, but I suck in all of them.
I guess I'm a no-stack developer.
😆
Same, especially dev ops. Hate that shit XD
You are not alone ;)
Same here bud.
Oh wow this was from 2 years ago.
I have moved on to a full time back end, getting paid much more than when I was a no-stack.
Learn as much as you can, then find a better company where you don't have to do four roles in one salary.
Should be thankful I guess.
full stack= jack of all trades master of none
Sure sounded like it in his description!
That's how I describe it when someone asks.
full stack = underpaid one man orchestra, cause we don't wanna hire a team of developers.
@ if you are self employed full stack might be the best option for you. I still don't like full stack, cause I'd prefer to stick to one thing
it's someone used "C" to create python not c++
Yes, someone commented on that already and that's my bad. It's C. Up-vote so more people see this.
sorry i didn't see it, keep going like that you're doing a great job i like what you do and there are few people that admit doing mistakes and try to correct them wish you good luck in your way of helping people
Also, doesn't mean that you have to use C to create a programming language. In case someone misunderstands.
Also PHP ( for back-end web application) is created using C
Hamza Eljaouhari Is PHP really backend? Wut
Thank you Mr. Xiang for a well thought out and presented list. I've been an application and back-end developer for, let's just say, since "megabytes" were considered BIG.
The only category I would add is the database programmer. Similar to a database administrator, in that he/she lays out the different databases and tables so they can be best used by various languages and applications. But more importantly, some databases such as Oracle's SQL have their own embedded languages used for "triggers", "stored procedures" and the like that help keep the database clean, useful, and responsive. These folks do things similar to embedded programmers only with databases.
Again, good job on the information.
Thank you sir for your kind words. Yes, that's a great category. I know that some people do dedicate themselves to designing a database as well as using it. I've heard of pure-SQL developers(everything runs in < 25ms), and also the people implementing mongodb/postgres are definitely specialized!
You sir, not only analyzed and presented "types of software developers" rationally, but in a sophisticated and truthful way!
8. Algorithm - From "Coding" to "Programming" to "Developing" to "Engineering". Software Developing incorporates not only knowledge of physics and chemistry for the hardwares, but MATHEMATICS! Math is the logic and reasoning for ALL SOFTWARE CONCEPTS!!!
9. Embedded - Low level Languages are SOOOO IMPORTANT. ALL YOUR HARDWARES's software are hard coded to function, or else high level software will not function.
13. Language/Compiler - Many people only know how to use a pre-defined language to create software, but not understanding that these languages are already programmed and compiled in machine languages for the hardwares! 0s n 1s!
yep. difference between high-level programming and low-level programming. There is a science to surgery. And simultaneously, there is a science to even just making the surgical scalpel
David,
I am a power consumer of UA-cam Video of the highest order.
I’ve been asked by UA-cam several times a month to prove that I’m not a robot...which, to be honest, I might be...
Once or twice a week I come across someone or something that just gets it spot on...
This video and your chill energy are the perfect way to break down this info.
Thank you, sir, for being awesome.
The cool thing about being a Computer Engineer is that you get to be all the 13 types at the same time.
As someone majoring in Computer Science, this has been extremely informative. Thank you!
This is exactly what I need as I pick my classes and apply for internships. Thank you!
I'm a human compiler. Feed me some C and 6 hours later I'll shit out some x86
Hahahahahahah
That was super helpful, been looking for a summary of the latest terms used to describe Software Engineers.
I'm not even past the intro - and already love it...
=) Thanks sir!
I am IT recruiter..this vedio helps me to understand the basic of IT engineer's work... thank you for making this vedio..👍 God bless you..
I like it. It's a very nice and comprehensive classification so far. Btw, I am a guy number 9 - Embedded / Firmware engineer.
A good developer knows all that was mentioned in your video.
Excellent video. I am a Structural Engineer (Bridge) looking for career change. You summarized it very well. Many thanks.
this is sick!! I love things to do with programing and front end software developers. I like being creative with digital interfaces
Great list! Shoutout to QA/Test Engineers! :) Also, I'm glad you pointed out the usual meaning of full-stack. I refer to myself as full-stack, but I mean that I'm comfortable all the way up the stack. So dealing with low level networking on up to being able to work with a ton of technologies well, on up to building an OS (not all coding, just can compile, tweak installation, and get it to boot.) Because of the way it was used with trendy startups it's been watered down, but in my opine, if someone hasn't had years working with many of the technologies up the stack (soft devel+networking+admin experience), I would hardly consider them full-stack.
Brother whats is ur insta id name , need to talk about full stack , because i want to start as fresher , just suggest
Cool! I'm a "full stack" developer! (I'd like to be mobile developer, but my mind is so vague and I'm always switching from one thing to another).
Thanks a lot, I feel very misguided because half of my major has been end-user-facing development of applications (and backend for these apps) and I've really disliked it, and since it's been basically half of my major I've been worrying a lot that these were the only career choices and that I may have fucked up the past few years of life with my decision. Your video gives me lots of hope on finding a fulfilling job in the future as I really like the low-level more techinical side of computers, thank you!
I'm an indie dev who wrote my own game engine and does all the coding for my own games and I found your break down really solid :)
I too agree that number 12 *Full Stack* is just a slick-sounding term for a *Jack of All Trades, Master Of None* mythical developer.
One that is used to do all things barely good just enough to get the wheels moving; specially in small or underappreciating companies that love to hire the bare minimum of staff. To add insult, also at the lowest cost possible "for the experience." Better call it a Unicorn or a good salesman of him(her)self just to get the foot inside the company.
Back in the 80s you could pull it off, because there were only three things to know: A single-thread, single user, console-oriented procedural language, a filesystem or local (diskette) database, and the hardware (TSRs, CR byte, serial ports and the like) it will work on.
Today "Full Stack" means front-end (JS), middleware (Django), language (python), presentation (CSS, HTML5), DBMS, QA, Version Control, Use Case documenter, analyst, user support, network admin, hardware installer, OS administrator, security expert, router configurator....
Impossible to be very good at all that, much less with technology paradigms changing on a monthly basis!
P.S. I'm expecting response from several loud-mouth Full Stack evangelists, all graduates of DevCons and Google searches.
Totally agree. Learn Linux, HTML and CSS (most nerds already know these) and a couple of frameworks (front end and back end), and you're a full stack dev. Boom. All it really takes is a certain personality type to spend the countless hours to actually sit and read the documentation of whatever framework you're in. Its not even about intelligence (which I think a lot of people get butt hurt when they're told that 99% of programming these days isn't rocket science). Hell, understanding AGILE and GIT/Subversion are probably harder than the actual coding and query writing needed to work in the field.
PS Google is a proper education, damnit.
Dude that’s hilarious but spot on. We are all google experts!
"Master of none" isn't mythical; "Jack of All Trades, Master Of All" would be mythical in the sense that it does not exist.
There are two types of developers:
if (true){
/* Some Code */
}
if (true)
{
/* Some Code */
}
What type are you?
+1 Python coders which use neither
The first one xD
Im number 2 forsure, it makes the code look alot more organized and easy to follow for me at least when the opening bracket and closing bracket have the same amoubt of indentation. i know, i know, im a nerd :).
I use the first one
There are another two types of developers:
Tabs vs spaces.
But all that can be resolved by your IDE. All you should care about is writing your code and hitting enter at the end of your line.
You are awesome man!
Well done! You covered a good range and gave good explanations.
I wish I had seen this when I was studying for my undergrad. It felt like my choices were basically back end java/c++, front end, databases, AI/research.
Now I help make network cards :)
Excellent list! I have learned quite a bit with your clear explanations of the differences and existence of each engineer. Thank you.
Thank you so much for breaking this down! Very informative! I'm thinking I'll start as a Full Stack to get a thorough understanding of all levels, then specialize in whichever I enjoy the most!
I like the way you explain Engineer: Xiang. good job keep on going.
Nice :D
actually thank u very much, I was honestly searching for some kind of a explenation of all these terms!
A Full Stack Developer isn't a generalist. It's usually a specialist who handles all the processes involved in at least one stack, from the server configuration to database design and administration, to the server side framework to html, css, and javascript. That's what's meant by Full Stack. It's the entire stack.
now I know I am an application dev :D thanks man . . . keep up good work
I really like this youtuber , when he speaks about programming he doesn't make it sound like open heart surgery or quantum physics, simple , cool, down to earth.
What about job postings that just have "Software Engineer" as a job title what do they do
This really opened my eyes. I got through my first semester of college and did pretty well in programming class (C++). Then I got to thinking, what am I going to do. Should I do applications,games,or websites? Algorithms and all the abstract stuff really pulls me in honestly. Who knows maybe I will eventually get into the other stuff but right now I feel I lack creativity to even approach applications,games,or websites.
Same 💔. How is it going now ?
Really nicely done, Dave!
Bro, if you could do some classes on a specific language like python I would DEFINITELY watch them. Your videos are amazing by the way. :)
I love watching your video about software engineering. Useful information
Thank you for the break down of software developers....BIG help for the next level to enter into.
Thanks for making these videos bro, they're helpful.
DUDE U FORGOT ABOUT SYSTEM SECURITY NETWORK.
jacobmufasa interesting. What programming languages do you use? Of ifs it's using applications someone else has made, it is absolutely not programming.
jacobmufasa he talked about dev-ops
I agree that Dev-Ops is the catch all for infrastructure engineering
@@johnmadsen37 sql?
Full-stack encompasses a bit of everything because someone has to have the practical skills of most of the disciplines to put an application ecosystem together. If you need someone to tell the Devops engineers what infrastructure to deploy, tell the front-end devs which framework to use and which api it will point at, tell the database developers which data models to develop, you can say its an architect, but that role is typically dealing in abstracts. The full stack developer is the person who gets stuff done, because they know how it all fits together - and which pieces are needed to make it scalable.
What category do the developers who develop Photoshop or commercial-product-type-of-aplications for the PC fit in?
I think that falls under the broad category of Application development within a specific platform. So for example, if you're developing Photoshop for Mac you'd be a mac OSX application developer.
Agustin Uribe
Yo, love these videos man, keep it coming :D
Another wonderful video Dave.
you descriptions of dev ops and full stack are a little off.
Dev Ops - typically would work on the iternal software infrastructe and software used to create the software product. build systems, continous integration, scripting build and other internal process workflows, common scripts and tools for deployment and work.
Fullstack - Implies the developer would be able to work at any layer of the software stack. kernel, sdk and libraries, application layer
Awesome!!! is the only word to describe this video. Thank you for making such great content!
Where do the algorithm developers work and how can I become one?
Google, Amazon, Facebook, Twitter, Microsoft, SAS...best bet would be to get a PhD, or at least a Masters. Also pick a field to focus on, because that will help you stand out (particularly if you actually solve a real problem and get published.
I am a Control SW Engineer. Most of the time I used Visual Studio (C#, VB.net, ASP.net, WPF/VMMV). But for the systems that I work on, I have to be fluent in Ladder Logic, PLC programming, and LabView as well. Where do I fit in all these? To make it as a software engineer these days, you have to master at least 3 out of those 13+. Unlike other engineer disciplines, software engineering is very wide. No software engineer masters everything in software. There are more jobs in software than almost anything else, but it's still very hard to find software job. Because you have to find something that fit you or they won't hire you without that specific experience. When I was in college, there were only a few things to study to be an electronics & computer science engineer; C/C++, Pascal, FORTRAN, and Assembly. I graduated in the same year as MS Windows 3.1 release. I had never got to see MS Windows 1.0 or 2.0 while in college, only DOS.
I have done 10 of them I believe.
Helpful facts that should benefit students intending to step into this industry
Impressive breakdown of this complex industry.
This is very helpful video.
From here i have gained knowledge on software engineering.
Thanks for the explanation. And thanks for the intro addressed to trolls and haters.
awesome video dude! keep putting stuff out
Game developers:
-Gameplay dev
-Engine dev
True stuff..btw what kind are you?
Nice vid, cleared up some of my misconceptions
This is super useful, your channel is awesome
Could you post you lists in the link area? Either by a word doc or just listing it out. it would really help.
I'm 18 and havent done any courses or ever programmed anything before, is it a good idea to study this in university
learn it yourself but dont learn it because you want money learn it because you want to do something for example i got into video editing because i wanted to make a lighsaber duel video and after that i got really into it same in programming i did not start it for the money in short i think university will waste your time you can sit down and learn it from home from online courses
University will not "waste your time". That is unless you can study calculus in several variables, probabilistic algorithms with proof of complexity and neural network theory from home. Even if you could learn it at home, university will provide you with experience, contacts and a portfolio of projects created. There is a reason employers like seeing a degree on a resume. So if you have the time (and money, depending on where you live), I would say go for it.
The University is probably a strong path to success, but I would only recommend so, if you really know what you want. It's hard and the pace is fast. To really profit from it you need to fully commit to it and I mean fully.
That said, if you don't know for sure, you should definitely wait with studying and either travel and/or find a part time job and while you do so chose something you want to do and then use the inet to find out how you get there. After two years you will be able to look back and know for sure whether you really want to commit to it. I promise you.
Go to uni as long as you know what you want. In some places uni will give you status and respect, however the best way to learn and get experience and master it is the real life and practice in the real world. Hope that helps mate!
As some of the others have kind of said: No. Until you actually take up programming and decide if it's for you, don't even think about dedicating vast amounts of time and money for it.
And I caution you: You need to be comfortable with feeling worthless for a while. Programming is a difficult domain.
I do machine learning, feels like data scientist, no university education, lots of analyzing,love it
This is literally the first software video I have watched, my initial impression is that being a software developer is/can be a job where you take a look at what a company has in place and developing something to make the company/general business run more efficiently, would you say that is accurate? Thank you
yes.
i realised just how boxed up i actually am, i thought being a back end, front end and gaming engineer. i thought i could do basic anything...
boy was i heavily mistaken
I want to be an application developer, but there are so many options:
web, android, IOS, desktop, Windows Store.. I just don't know which to choose :c
You could look out for frameworks, that manage your target for you and let you create one software for many devices.
I am not sure how good the choices are but if you don't find anything you could totally use the Unity Game Engine to develop your apps. It does not need to be a game and it supports a ton of devices besides the consoles and home pc. A total of over 20 right now and they work on more.
Learn swift and build applications for IOS. I myself, am a front end developer and I'm learning react so I can build web applications. Both are very fun though.
Brodey Newman I mean I've been doing web development and I'm happy, but I'm curious about application developing. Also I'm a windows user and can't afford apple development.
Flame2057 Then run Linux, IOS is basically BSD. You can run freeBSD as well but the issue there being you will have more limited choices in terms of software availability.
Thank you for this video I really needed a good break down
QA is not a software engineer. Depending on the company a QA person will execute test cases given to them by the developer. Often after testing they may come back to the developer or write additional test cases that the developer may not considered. Typically a tester who writes specific test sites are writing integration test and they're often called SDETs, not QA. Typical developer write code that test their own software, generally referred to as unit test. This is different than integration testing where you must simulate software under test. This is where an SDET come in.
Keep in mind QA and SDETs are usually only seen in enterprise settings. At smaller companies is the responsibilities to write integration tests falls on the developers
Well resumed, i personally also don't like the fullstack name, but it works as the swiss knife developer for startups, do a little of everything without being an expert on all that.
Fantastic Job Man! Congrats!
Nice Video , but would have been nicer if you also mentioned some languages used by each type.
Just to try and put you into perspective (I hope this is of help):
Any language could be used by any of these 'types,' for the most part, as well as multiple languages at one time. It's all relative to that type's current objective and the resources available to them, (a LOT of factors go into consideration here). Of course we can make educated guesses for each type. For example, if there is a mobile software developer, chances are he is familiar with Java.
If you were asking because you want to figure which language you want to learn first, I recommend the following:
= C & C++
= Python, then how to write/use Batch (Windows) & Bash (Linux) files
= Java
Eventually, I recommend to get familiar with all three. When people say once you learn 2 or 3 programming languages, it becomes fairly easy to learn any language, they are not lying. At that point, it's just a matter of pulling up documentation, then GO.
Thanks a lot jacob , but I know all the languages you just mentioned , I also know nodejs (yes I know ;-) ) , matlab , php and vhdl .I just wanted the dave to also tell what are the most important languages associated for each type of software developer which would help the audience to understand the languages better .
For example , a data scientist would mostly use R , python , stata or matlab and so on for all the developer types.
True that, gotcha *thumbsUp*
I will try for you:
1. *Front-End:* He kinda says so: Javascript.
additionally naturally HTML, CSS, SVG for representation. Javascript is the non-plus ultra and there are a TON of APIs out there. (Dave says framework, but I think that that is mostly incorrect)
2. *Mobile:* Any kind of high level language with Garbage collection, most likely Java, since natively platform independened. There is also swift for iOS and Objective-C, which is nowadays pretty rare.
3. *Gaming:* This requires a two part answer:
3a) Engine: The engine is similar to a framework with additional features. Since games want a lot and gamers want pretty, those engines are programmed in languages that pass on Garbage Collection and any fancy stuff that makes development easier on the cost of performance. Generally that means C++, C++ and ... C++. There are people that create some apis even in C. However C++ has many flaws and grew into an abomination over the years. Even though there are potential alternatives they are mostly ignored by the industry, mostly because they don't fit the bill. Jonathan Blow tries himself on a new language design which is catered to games and possesses performance, readability and consistancy as well as low friction on refactoring. It may very well be the future for modern game engines.
3b) Engine tools and Scripts: This is generally more aligned with game design and is used to create the world and its rules. This has often two stages:
- An abstract stage that serves as an interface and describes the kind of rules that are allowed and their complexity. Mostly in use are still C++, C#, and Java for Mobile.
- A specific stage that explicitly states rules, relations and content. There are several scripting languages that fit the bill: Most commonly known are lua > xml [> txt/bitmap (mostly for layouts like levels)].
4. Back End:
The Internet is everywhere and so there is a ton of software for servers and even more tons of servers on which that software runs. Because of money, there is probably nowhere more duplicate code than here. Most commonly used Languages are
- Java (starts to recede and hopefully vanish altogether)
- Python
- Perl - Ruby
- Javascript (yes even though it has script in name, it's actually a fully pledged language which on top allows easily for functional programming paradigm usage)
- There is probably a ton more of which I cannot think right now.
5. Applications: Basically everything that is turing complete. Often choices are made depending on the target platform. Platform specific ones are:
- C#, F# for windows
- Swift is super popular right now with iOS-devs.
- GNU(+Linux) has no specific ones, logically.
6. Data Scientist:
- makes generally great use of functional programming languages, but the lagnuage choices strongly depend on the area of work
- there is Matlab which is similar to Python but extremly good at dealing with HUUUGE amounts of data
- In Machine Learning and pattern recognition they like GPUs and as such cudas and other nvidia software and their respective languages are quite loved. Visit their website to get a feel on how much they got.
7. QA / Test:
- Whatever the chosen language and tools are of the main-dev team.
I think that is one of the reasons why they are so underestimated. They don't get to make as many choices as others, but if you think about it, it makes their feats even more impressive.
8. Algorithms: Again fancy, functional stuff like python, haskell, but beyond that often simply C for performance because it's basically the lowest of the high level languages. Especially since their implementiations are often not complete programs but rather apis and small libraries in dll form, that can then be importet by a wide range of other languages and that way retain their excellent performance.
9. Embedded:
They more often than not deal with special systems, that have very specific instruction sets and as such are one of the view groups that actually still write sometimes code in assembly or their respective low level language. I don't know a lot of embedded though and I assume that nowadays there could/should be a lot of special compilers that allow them to write c for their particular platform, if they are lucky.
It also should be noted that in embedded systems it often is necessary that your code is flawless. As such, they don't use tests. Yes, you heard right. Tests are not reliable enough. There is no guarantee that you did not make a flawed test.
Note, that embedded software is used in cars, planes, satellites, nuclear power plants... as such, their software is not tested, but rather mathematically proven to be flawless. Yes, all those math prove stuff, that you never really understood and thought that it was stupid and unnessecary. It's actually the most important thing in our modern world.
10. OS
It's magic. The cloud looks like a lvl. 1 spark of insignificance spell in comparison.
Kidding aside, thye nowadays use C/C++. The kernels out there are written in C and there are guidelines how the coding style should look (www.kernel.org/doc/Documentation/CodingStyle) and they warn you to not use complex statemenst and such. Kernel coding needs to be very clear, simple and performant.
11. Dev-Ops: A lot of it is the gnu - command line and creating appropriate macros. There is still more, but maybe Dave knows more about that than me.
12. Cloud engineering is a mix of OS and server stuff. Anything goes:
www.techrepublic.com/article/10-of-the-coolest-cloud-programming-languages/
Core concepts are distribution and allocation of resources, where resources can mean anything from simple memory to fire up new servers all automated and based on need. Very powerful for scaling applications like MMO-masterservers, dynamic instancing or "single shard"(www.dualthegame.com/)
13. Language/Compiler:
Since the compiler is a regular program, you can use anything to create a compiler. The quintessence is to take your text file and converting it into machine reading code. There is a lot going on and a ton of room for common pattern recognition and resolution into more performant statement sequences. With apis, libraries, frameworks, semantic validation, auto correction and partial recompilation it's one of those areas where you can work on a single project for ten or more years and the software still can profit from your advances as an engineer.
Hope I could help :)
There is something which should be called Extreme Full Stack Applications Developer. These guys are expected to know it all and do it all, all within limited time frames.
what about industrial software engineers? (siemens, allen bradley, omron etc)
It's a variant of embedded engineering. Such systems usually present a specific very limited language which closely maps to the hardware capabilities.
PLCs Systems Integration Engineering?
I have to go through all phases for an application when ever there is need of customization. Also have to take care of errors in existing programs... M I full stack or application developer....??
Really loved this! Info + Music 💰
Hi Dave, can you update this video with AI/ML Engineers, Cloud Engineers, Big Data Engineers, etc. for 2018/2019?
What type of software dev are you?
+Jack F I'm currently doing a mix of application/backend. My first job out of school was a firmware role, I did academic software for awhile, also followed the trends and did mobile.
Would be cool to know what technologies/languages each type of developer typically uses.
That is a good idea
@@DaveXiang Would be great for people who want to know what tech/langs. to study on when narrowing their career path in Development, which is what I'm doing.
Do you have any recommendations on how to narrow this down during the start of a career?
I think it depends where you're coming from. If you're doing this from scratch with no formal school, then I'd say web/mobile is easiest for entry and more accessible. If you can get into some program, you might be able to get into some of the more niche categories and formal training. (if you take networks/OS/security/etc)
Which type has the largest job availability? Which type do coding bootcamps prepare someone for?
Awesome info. Right to the point. Didn't all the different branches of software developer. I'm heading to one of "those" bootcamps next week. I don't know what branch of developer I'm interested in. I guess I figure that when I get there. GREAT VIDEO. THX
what about security developers or something like that? Like a person that test the secruity/sets up a secure network for someone...is that a thing?
Yea, forgot about that. There could be developers who specialize in security. They could kind of fall under DevOps a little bit, but it could definitely be a thing if a system really really needs heavy security.
I think IT also helps sets up and secures networks. They will do everything from set up hardware, write a lot of shell scripts, and also work with developer a bit to make sure the computers are set up probably. Their job is really technical, but I wouldn't label it as a software developer.
Dave Xiang oh ok thanks for answering
Hi Dave, can you please make a video on what Beginner programmers or fresh computer science student should do to get into the real world programming.
+Prashant Bhandari Check out Derek Banas and google 'github free programming books' or just start with' Zed Shaw learn python the hard way'
+Steven Garcia thank you. im doing python at school. i always hear people say contribute to open source in github but im so overwhelm by all this informations that i cant figure out how to start anything. how can i implement my raw programming skills to real world problems?
I know man, I'm a freshman CS major and I just work on building a personal portfolio building tools for myself using bootstrap framework and different backend web languages.
The advice I've been given by older CS majors is to use a lot of open source project and as I get better contribute to the READ.ME file and fix bugs that I experience
+Steven Garcia oh. thanks man.
+Steven Garcia can you suggest me something more, some book or source from where i can start my work. As i any know some beginner. python.
The 12 is wrong, it just means he can cover the whole spectrum of skills needed to deliver an application, regardless of the skill level. Every type of software engineer can be able to "do a little bit" or be a skillful developer. The same applies for full-stack.
You have seem to have slightly misunderstood the full-stack developer.
Yes, it is an umbrella term for a developer that can do many things, but still a developer with a specialty just not one that you work with exclusively. You tend not to be highly specialised but your value for any company comes from your ability to see the problem from several angles at the same time and working across the siloes of many other more highly specialised developers.
A full-stack developer has a background in another field of development but has moved beyond the boundaries of a narrow definition, rather than towards further specialisation in a field.
The name comes from the concept of the networking stack used in communications. The OSI model splits the stack into 7 layers from physical to application. The name full-stack developer implies one that can work at all levels.
Thank you for the video and your hard work on making it.
I got a Treehouse ad before this.
what category do database developers or database administrators fall into?
+tworains2
Database administrators probably fall into DevOps. ANY type of software developer could USE databases to help them in whatever they're working on. Databases are so pervasive and so useful! If you're actually the developer creating the database, e.g. you're actually working on Postgres, then you might be considered an Applications Developer. In the end, the Database itself is an application we all use to help us.
+Dave Xiang thank you and that was quick lol
Awesome vid! Keep it up.
Hi Dave,
Have you ever considered working as a remote worker?
Personally, I haven't. Though a lot of people do like working remote or freelance.
Thanks man. I am going to start software engineering school in the Fall. So, I will be asking lots of questions. Thanks for your help.
I would say remote is a way of working, not a type of development. you could be a perm staff, contractor remote worker etc.
that was quite amazing, i never really knew all these classifications.
hey dave , the tech stack is destroyed how do you rebuild it?
lol what do you mean destroyed ? i hate the word stack, it's so overloaded
what about people who program microcontrollers?
Embedded specifically refers to embedded microcontroller programming working closely with the hardware. This has a lot of overlap with electrical engineering. For example you could work alongside engineers who are instrumenting autonomous vehicles handling all their sensors in the car.
there is so many types of programmers out there, but one thing i know is building them, is passion running of codes.. :)
Very helpful! I'm a recent college grad with some programming background (CS minor) and recently decided I want to become a developer, and needed to understand the different types. I realize that I prefer back-end development.
Compiler development also sounds really cool! Can you tell me about the outlook of the job market for this, as well as some resources to learn more about it?
Compiler developer is really niche and there isn't really a job market for it. There aren't that many developers in the world working on this. If you truly want to do that... you will have to study really hard and find out exactly how to contribute which will be very specialized. This also requires high level of skill. If you are just starting, I would continue with some application development until you get really comfortable with that.
Could you tell me the difference between Computer Engineering, software engineering, and computer science? Also, do you think a person that without much code experience could be successful in majoring in these fields?
+Kudakwashe
Computer Engineer is really understanding how a computer works. How does a CPU work, what are the major components of a computer system, how do you design various hardware components of a computer, etc.
Computer Scientists care about how a computer works, but they focus more on algorithms and data structures that rely on the fact there is a computer is already working underneath them. A computer scientist will design short path algorithms, optimal search techniques, best ways to compress a file, etc.
A software engineer is the most "hands on" type. This is writing software to be used in a production setting like a company or business. It's writing software that "scales" up and can be used by many people and solve real life problems. Most industry positions in software are for "software engineering".
Everyone, everyone, everyone needs computer science fundamentals, but at a certain level computer science gets too theoretical and complex for most business/company needs. The people who pursue computer science at that level usually have very specialized jobs.
You need code for every field, it's a basic requirement.
+Dave Xiang so could a computer engineer be a competent software engineer? My college only offers computer science or computer engineering so im trying to see which one would best equip me for a software engineering position.
+Kudakwashe
I'm a computer engineer, so I hope so =)
Both CS or CE can lead you to software engineering, I would just read up more about them and see what interests you more.
Thank you for this video! I've just grown interest in programming and this just cleared few things what differences there are.. I did not know what you said about embedded even though I knew some an where interested in it. Now I know a littel more and maybe can find the way I want to go.
What degree do u need for a front end or back end developer ?
I'm starting out. isn't a designer just a designer you get a degree in computer science and then get a master in software development? I'm thinking of learning software development but I can't find good information. tell me if I wrong,but I think it falls on what college you go to for computer science. If you learn about the machine and whatever you're good. For all 13 Subjects
awesome work 😁
So when someone says software engineer it's the same as a software developer?