Top 10 Types of Software Developers

Поделиться
HTML-код
  • Опубликовано: 9 фев 2025

Комментарии • 891

  • @AaronJack
    @AaronJack  Год назад +8

    Free Beginner Programming Course
    coursecareers.com/a/aaronjack
    Free JavaScript Cheat Sheet
    dontforgetjavascript.com/
    Free Coding Advice (We'll Send you a Video)
    aaronjack.dev

    • @mustafatufankeserstudent5095
      @mustafatufankeserstudent5095 11 месяцев назад

      I dont agree with in terms of data scientist. Chatgpt Did not written in Python.
      The GPT-2 source code is written in 100% Python. The model is based on Tensorflow and NumPy which are written using C and C++.
      So data scientiest cannot develop engine or web app or backend.! So two types of ds are one just use existing predifened lib (worst one)
      They can write their lib contribute Python (average). You said that 80 percent of a data is unstructured. How a fucking data scientiest can read millions of images (you can use haskell ruby c C++) or you can make data dd in haskell faster than python. Average Python ds needs to spend two years to learn haskell or c. In this days every fucking thing is called a.i even you said that data scientiest developed chatgpt with Python. How this fucking frontend written how they deployed this huge app to all world without js or some kind of js library. How they developed backend mvc mvvm which design pattern they used. What is request response time. Caching backtracing logging ?parttitioning all that data. What is high cohesion and loose coupling types ask your ds who developed chatgpt assuming they are data scientist. Data science is just a tool and algorithm within huge application. Yes you are write math behind it too important. But you talked as if they are earning the best Salary.😘 After learning Python everyone can become a so called data scientiest that is aşk! 90 percent of then not even a software developer. Ask dsa system design bfs dfs. Make eda train test split put aşk supervised models into for loop look f1 roc curve and say that they are the best. Absulately rubbish. Please use for nlp haskell and Python. In haskell you can read image convert text write your own nlp compiler. In python pip install bla bla bla please find MR one python nlp dev can make same job in haskell within 20 days after this response. I think you cant find. But ı can make nlp with Python while one of my is not opened within 30 minutes

  • @jasonl9266
    @jasonl9266 3 года назад +3569

    The people who write systems and libraries from scratch for other developers are truly gifted.

    • @tasheemhargrove9650
      @tasheemhargrove9650 3 года назад +136

      Exactly. Of course the people who write systems level software are great; that goes without saying. But as someone who's still in the process of learning all this stuff, I always find it interesting to look at code I'm using.
      For example, a lot of times I'll open a Java file written for Spring or Jax-RS so that I can understand what a certain class or method is for, but I get a glimpse into how the developers at Oracle or whatever framework I'm using designed their software. The way these people design software is amazing. For the front-end, sometimes I'll take a quick minute to look at code in the developer's tools on popular websites. It's interesting to see how these devs organize their html and css.
      The JavaScript never makes any sense though. I'm assuming some type of algorithm is used to change the JavaScript shown in the console for security, because all you can see is a bunch of one-letter variable and function names. I doubt a team of devs would be able to understand thousands of lines of code with function and parameter names like "function a(b, c)".

    • @MrWhoAd
      @MrWhoAd 3 года назад +138

      @@tasheemhargrove9650 The JS code you saw was actually transpiled and minified for browser compatibility and reduction of file size.

    • @tasheemhargrove9650
      @tasheemhargrove9650 3 года назад +25

      @@MrWhoAd Ah, that makes sense. Thanks for letting me know that.

    • @dawoodmorriskaundama9320
      @dawoodmorriskaundama9320 3 года назад +36

      Most have PhDs in CS and Maths

    • @chexblu
      @chexblu 3 года назад +12

      @@MrWhoAd Hello! It looks like you've got a lot of knowledge about programming. I'm starting to learn python now that I ended my college semester (I literally just started), could you give me an example of a good project that will make me learn a lot of stuff? I thought about making a calculator but I already did that on C++ some months ago so I don't know

  • @alexgraham6205
    @alexgraham6205 3 года назад +407

    Being new to programming and looking to pic a language to learn, this feels like I'm about to choose a new character in an MMO. Thanks for the great vid!

    • @AaronJack
      @AaronJack  3 года назад +38

      💪🏼

    • @SoundSpeeding
      @SoundSpeeding 3 года назад +55

      Don't worry about it too much! You are after all initially not much learning a language, but learning to program.
      In the long run, the particular language doesn't exactly matter, as you should be able to quickly pick up whatever is the right tool for the job.
      And a professional programmer while know more than just one language.
      Thus don't worry if you learn Javascript or Python or Go or whatever first, just pick one and get to it!! So long as it is fairly mainstream.
      Nothing either with picking a more niche language as your first language too, such as Matlab or R, if those more closely align with your current line of work.

    • @CE-vd2px
      @CE-vd2px 2 года назад +9

      I confirm. I learned python over a few months and was able to pick Java up in about 30 hours. I can't problem solve with it yet but I can write a class in Java with proper syntax. It really isn't a huge deal to learn a new language and I am very surprised.

    • @jathebest2835
      @jathebest2835 2 года назад +3

      @@SoundSpeeding How long have you worked in IT?? Your comment gives me a big encouragement..thank you..!

    • @jop7479
      @jop7479 2 года назад +1

      @@AaronJack what's another name of the title 'systems developer' in terms of this industry. Just need some clearance from a pro in the the field.

  • @Raiver-of-Eridu
    @Raiver-of-Eridu 2 года назад +655

    The concept of "back end" is only really applicable to web development. Nobody who works on embedded systems, for example, calls themselves "backend embedded software developers", they are just embedded software developers.

    • @LangstoniusRex
      @LangstoniusRex 2 года назад +33

      I would disagree.
      The guy writing my libraries might not be the best choice for implementing the UX.
      And im seeing this distinction more and more.

    • @Chris-io2cs
      @Chris-io2cs 2 года назад +12

      Yeah this guy seems to mostly be a front end dev but hey that's fine.

    • @Chris-io2cs
      @Chris-io2cs 2 года назад +10

      @@LangstoniusRex When theres no server-client relationship involved I would just call them an embedded developer that does UX. But in reality I don't think it matters too much where people draw disctintions as long as it makes some sense with a given job description so hopefully me saying that doesn't make me sound like some programming domain naming elitist...

    • @waveboard111
      @waveboard111 2 года назад +6

      Most if the time i agree with you, but for instance for my graduation, i had to make a bluetooth interface for an embedded system, so i had to make a front end app, and a backend bluetooth server to execute configurations and and give responses to data requests.

    • @BDyoungster1997
      @BDyoungster1997 2 года назад +4

      ............... what!?
      bruh
      everything is dependent on the system, there are no concrete things

  • @mikekelly6774
    @mikekelly6774 3 года назад +225

    In the 90's there was only one kind of developer that the business expected to do all 10 of these - Web Master. Today when the business doesn't want to pay for 10 developers they just advertise a single opening for "rock star full-stack developer."

    • @niftyp2320
      @niftyp2320 3 года назад +9

      Absolutely, working for smaller businesses has their own benefits but you gotta be careful. At the very least, they better understand you're taking care of multiple positions and make accommodations one way or another

    • @themaggattack
      @themaggattack 3 года назад +21

      Key words "doesn't want to pay." Yep. In the 90's businesses HAD to pay BIG MONEY for a Web Master. Now they just take them for granted and treat them like a dime a dozen. So condescendingly calling them "Rock stars." Insult to injury. PAY THEM!

    • @houmy9041
      @houmy9041 Год назад +4

      full stack doesn't encapsulate everything, thats what non-tech people think is an "all round developer" but its just front end and back end. If you want a true full -stack you'd have to do front end all the way to the embedded chip it runs on. It's impossible to do all the roles in one.

    • @nyahhbinghi
      @nyahhbinghi 11 месяцев назад

      nice! I forgot about that title "webmaster" nice nice

  • @LucasNunesK
    @LucasNunesK 3 года назад +783

    There are 10 types of people: those who understand binary and those who don't

    • @MarcillaSmith
      @MarcillaSmith 3 года назад +48

      Wait, what about the other 1000?
      EDIT: typo

    • @mikasd9
      @mikasd9 3 года назад +4

      @@MarcillaSmith lmao

    • @dronestrikejr
      @dronestrikejr 3 года назад +1

      2

    • @VictorNascimentoo
      @VictorNascimentoo 3 года назад +96

      There are 11 types of people. Those who understand binary, those who don't and those who are so fucking tired of this joke.

    • @neptunemike
      @neptunemike 3 года назад +10

      @@dronestrikejr the joke is 1 and 0 he didn’t really mean Ten

  • @scrizzjunior
    @scrizzjunior 3 года назад +201

    I think software engineers who work on safety critical systems deserve a mention in a list like this. Engineers who work on flight control systems for planes, stuff for NASA (space shuttle), medical equipment, etc where software defects can cost lives. Although there is some overlap with some of the other categories on this list, the processes and techniques used to write safety critical software are very specialized and rigorous.

    • @Bjokac
      @Bjokac 3 года назад +15

      I know a guy who writes C code for life-maintaining ventilators and what he does falls neatly into the embedded software developer. The software is so critical they have to use certified compilers, so GCC is out of the way for example.

    • @Maklaka
      @Maklaka 2 года назад +19

      @@Bjokac We use GCC in the train safety systems space but are limited to language features from C90/C99 and even a subset of those. Collections libraries are out the question because dynamic memory allocation is forbidden past runtime, for example. The code is strictly filtered through static analysis tools to ensure that no bugs get through and that the code is written as platform independent as humanly possible. The same code runs across 3 different OS/hardware platforms and they crosscheck eachother's memory on a 1/3rd second basis.

    • @drunkenmaster389
      @drunkenmaster389 2 года назад +6

      Good point, but he does talk about Embedded Systems Engineers which safety systems would fall into. He just doesn't specially mention safety software on electronic embedded systems.

    • @carrot7868
      @carrot7868 2 года назад +2

      Now I'm thinking about the fact that all these programs were made by humans and it scares me.

    • @augusto256
      @augusto256 2 года назад +1

      Those are called Critical Mission Developers

  • @F56-f7p
    @F56-f7p 3 года назад +100

    The quality of this video is just insane. You are making some real progress. Love your content. Keep it up!

  • @gargervon8697
    @gargervon8697 2 года назад +22

    Watch an old video game developer who was making games for home computers and consoles in the 80s and you will see how sharp they had to be to give us some of our favorite experiences at the time.

    • @glowerworm
      @glowerworm Год назад +6

      The guy who wrote Rollercoaster Tycoon wrote the entire game, GUI and all, in assembly.

  • @julienfrancesc
    @julienfrancesc 3 года назад +69

    I love your videos' vibe. It's always got a chill atmosphere and the content discussed is always really well explained. Keep it up!

  • @sirstroam
    @sirstroam 3 года назад +409

    Some of the ones you've missed.
    Mainframe developers - Mostly older guys on the verge of retirement or from India where it is still taught. Used in large old established companies. COBOL and JCL is what is used. Very simple languages on very old and arcane systems.
    Machine operator - Programs CNC, and other industrial equipment operating instructions. Uses G-code, M-code, and other machine-specific languages.
    Quality Control Testers - Primarily write testing suites. Not very well respected.
    Graphics rendering developers and sound technicians- Usually very good at math, loves talking about shaders/audio stuff, and frequently found working on game engines. It's only when they mess up that you notice their work.
    Quantum computer programmers - Only a handful in the world.

    • @HardmodeEnabled
      @HardmodeEnabled 2 года назад +39

      As a QA guy, that hurt man. So many times I say, it's not ready "but we got deadlines..." - then surprised when everything is broken.

    • @postdisc0
      @postdisc0 2 года назад +8

      ones may not respect qa, ok, go with apps games and websites completely bugged up)

    • @aaditiwar1
      @aaditiwar1 2 года назад +4

      Quantum Computer programmers representtt

    • @ReggieMisFit
      @ReggieMisFit 2 года назад +2

      @@aaditiwar1 provide a roadmap, how does one end up being one

    • @aaditiwar1
      @aaditiwar1 2 года назад +21

      @@ReggieMisFit you start out as a 9th grader interested in quantum physics but because you have Indian parents you gotta go into CS, so as a compromise you do quantum computing
      fr tho if you want a good starter search up Qiskit, it's IBM's quantum computing sdk and theres a tons of tons of tons of explanations of quantum computing guides on how to learn qiskit

  • @g.4279
    @g.4279 2 года назад +61

    Embedded haven't been using Assembly for a looong time. The main reason is that compilers have become really good. When you find a good trick to speed up code in Assembly you just add it to your compiler. Occasionally they might decompile and tweak the machine code so it helps to know it. But devtime is way too important to attempt to handwrite anything major in machine code.

    • @salsamancer
      @salsamancer 2 года назад +4

      Yeah most embedded vendors just ship a modified version of GCC as their toolchain and call it a day

    • @MynecraftCZ
      @MynecraftCZ 2 года назад +3

      that's not quite true. there are cases where you need to write in assembly. especially when you're writing code for signal processing applications. it can be very small code where every instruction matters.

  • @MarcillaSmith
    @MarcillaSmith 3 года назад +200

    Less Complex End
    1. Web Developer
    2. Back End Web
    3. Back End Micro Services
    4. Data Engineer
    5. SysAdmin / DevOps
    6. Back End Embedded Systems
    7. Back End Performance Developer
    8. Hacker / Pen Tester
    9. Game Developer
    10. Data Scientist / Machine Learning
    More Complex

    • @APsupportsTerrorism
      @APsupportsTerrorism 3 года назад +6

      FPGA is another niche.

    • @ahbabhossain2994
      @ahbabhossain2994 3 года назад +7

      thanks! I was getting bored halfway through

    • @maxdegreat566
      @maxdegreat566 3 года назад +5

      Blockchain is another

    • @billowen3285
      @billowen3285 3 года назад +2

      Game dev at 9th? Curious

    • @billowen3285
      @billowen3285 3 года назад +2

      @Arnav Vijaywargiya I would've thought it may not require the technical computer knowledge of pen testing

  • @FrankOdongkara
    @FrankOdongkara 3 года назад +359

    Great video quality. I do disagree almost entirely with the idea that you can rank complexity by category. I personally started with embedded systems, then ML/AI, then Frontend+Backend+DevOps+DataAnalyst, and in my experience how complex the work I'm doing always depends on the project scope. For example, it's easier to train an AI model and load it to an ARM chip than to build the interface of a service like Uber.

    • @n30v4
      @n30v4 3 года назад +13

      Cause you cant rank this up. I do or done all fields (also I never heard of "back end XY" developers) and programming a hardware can be easy or complex like programming a button in your app. Q

    • @fredi1505
      @fredi1505 3 года назад +4

      Completely agree

    • @zuhairs7929
      @zuhairs7929 3 года назад +9

      Maybe you missed his point, he compares complexity between these professionals one on one not based on one project but a lifetime of projects, for example training an AI model is not the same as making it from scratch aka inventing this algorithm. Also dabbling with systems programming for one project doesn't mean you can compare a professionally paid systems developer like one who works on the kernels, and OS such as Windows, Mac or Linux to a front end web developer complexity wise (not size of project wise). Sure Uber is huge but it has hundreds or thousands of employees working on it's front end alone. Does that make front end harder than coming up with a new AI algorithm ? Does it mean designing and making a web page is as hard as making a gpu driver ... This is not a comparison of projects but paths.

    • @disha2932
      @disha2932 3 года назад +6

      Now that's a full stack worth having

    • @Terszel
      @Terszel 3 года назад +9

      I agree I would say that the range of complexity does differ by category though. I.e. I dont think you could come close to the most complex FPGA design complexity in web development, each category has a ceiling I feel like and that ceiling differs by category.

  • @noeldev
    @noeldev 2 года назад +98

    I would say the difficulty in game development (solo, or in small teams mainly) is that you have to learn way more than just coding, game and level design, graphic design, music, story telling etc, because you have to be good at many things, it makes it hard, even if you are a excellent programmer, unless you got pepole for the other parts, your game is very likely to just fail
    atleast that's just my opinion, being on the lower end of the game dev spectrum

    • @DiamondZombie
      @DiamondZombie 2 года назад +8

      And if you are creating it from scratch you need to do shit toon of Math and deal with memory and specially dealing with storing entities or which way to handle them them the most efficient way.

    • @NameSpaceVoid
      @NameSpaceVoid 2 года назад +3

      @@DiamondZombie True but i don't know why you'd ever do that these days unless it's just for the challenge when tools like Unity and Unreal are available

    • @DiamondZombie
      @DiamondZombie 2 года назад +3

      @@NameSpaceVoid True, but aside for that 2D is still do-able I think easily without tools like Unity since easy to use 2D libs exist for DX and OpenGL, I think Vulkan has them to not sure, but having the benefit of engine is that you can export it to anything like Metal (Apple). I agree with you, tough I think that challenge of it is very fun and you can learn lot's of things!

    • @anandsharma7430
      @anandsharma7430 Год назад +2

      Game developers are a different species. As an ex front-end, ex back end, ex data engineer turned system admin, I find game development impossibly hard, just below actual computer scientists, specifically for the things you mention (4-5 different skillsets) and mainly for the fact that you cannot easily automate game testing. You can do a lot of unit test automation and all that, but you have to play the game over and over and over a million times to see how it actually plays on real hardware on a real computer (with all kinds of configurations). I am somehow just unable to imagine myself ever doing something so repetitive. Certainly a character defect in me, but I also see 95% of the population unable to do game development.

  • @stropheum
    @stropheum 2 года назад +35

    Very good video!
    As a career game programmer, I would add a caveat to your point about pay. I think pre-5 years you're definitely correct about short pay, long hours. It's still a livable wage by all means, but the problem is that a lot of larger studios will dilute your pay with long hours so your effective hourly rate is very low. The plus side is, as a "veteran" game developer, you have a lot of experience, you've built trust, people know who you are. Most importantly people are willing to pay you bigger $$ because you've got shipped titles under your name. They know that you're an asset, not a gamble. The largest churn in the game industry is people fresh out of college, getting their 1-3 years of experience under their belt and working their way to mid-level. Senior veteran game developers are very stable, have very good pay, and that's usually because they've forged themselves into a rockstar along the way. One thing I love about the game industry is that nobody can really coast by and get a cushy job at a high level position without knowing exactly what they're doing and being strong collaborators.
    It's definitely tough at first, but if anyone is discouraged about game dev as a career, I will say this: I burnt out of my first studio gig, and went into enterprise software, and it was significantly easier, but I had an itch that I just couldn't satisfy. The passion wasn't there, the energy of my coworkers felt so low, I felt like I was easing myself into an early coffin.If you can tough it out, the payoff is so worth it

    • @scifyry
      @scifyry Год назад

      I'm back in school for mobile app development but not for games. Do you think there is decent side money to be made in game dev?

    • @stropheum
      @stropheum Год назад

      @@scifyry depends on what you mean by side money I guess. Game dev can be hard. Only doing it on the side might be harder than doing it as a main gig

  • @Taddy_Mason
    @Taddy_Mason 2 года назад +1

    Dear reader, if you ever find yourself in front of some manager pitching buzzwords about how awesome, scalable and amazing a micro services architecture is…do your best to fake an emergency and change your name.

  • @DrunkenUFOPilot
    @DrunkenUFOPilot 3 года назад +18

    Missing from the list: Graphics Software Developer. This could be considered a specialty within Front End, or Games, but really does seem to be its own thing. Lots of OpenGL, Vulkan, DirectX12, Metal and loads of libraries for dealing with meshes, objects, animation, almost all in C++ or sometimes Rust, Java.
    WebGL, Babylon, Three, and various Javascript libraries on top of those for working with Front End teams. Lots of 3D math, though no need for physics-level math jocks, since existing libraries take care of most of the details, but some ability to deal with vectors and coordinate systems.
    Having an eye for color, lighting, composition is helpful, though a hard-core left-brained coder will usually work with a hard-core right-brained visual designer to get things done. (I don't do that; I'm what you might call a "full stack" digital artist.)
    Understanding the hardware level of how things work is also good, since fast high quality graphics, especially in high end games, requires sling plenty of data around real fast. Can't waste time moving some data someplace only to copy it someplace else.
    Pays well, and the best part: playing with shaders all day long! Also one of the best areas of software development for impressing others, since you are literally making what others will see, tied only with Front End web developers.

    • @clemdemort9613
      @clemdemort9613 2 года назад +3

      Yeah and some of the best programmers of all time are graphics programmers, ex : John Carmack

    • @Itssdahi
      @Itssdahi 2 года назад

      Hey you seem very knowledgeable about this, can you send any contact info for you? I wanna ask some questions if you don't mind

    • @Bruhmoment135
      @Bruhmoment135 Год назад

      Interesting

    • @MariusSchwendtmayer
      @MariusSchwendtmayer 4 месяца назад

      Hello, mister graphics programmer. Do you know how can I get into gpu driver development ? (not the same as vulkan opengl and direct 12)
      Can't find any resources to learn...

  • @samuelmontypython8381
    @samuelmontypython8381 2 года назад +4

    The "high performance backend developer" is known as a financial developer on Wall Street. It's apparently its own branch of development and those guys get paid enormous salaries to write super efficient and secure finance-related code in C. They're not normal people though, they're the kind of people that can tell you how many toothpicks are in a jar but can't tie their own shoes lmao.

  • @stevewhitiker3590
    @stevewhitiker3590 3 года назад +3

    I have been wanting to start a new career in Software Developer and this is one of the best videos I can recommended to somebody if they want to understand the different types of Software Developers out there. Thank you Aaron.

  • @Radbrad869
    @Radbrad869 2 года назад +3

    My boy said php was the most common backend language 😂

  • @aditnegi2577
    @aditnegi2577 3 года назад +19

    You can scale monoliths horizontally too, and backend web vs backend microservices isn't a different type of developer according to me. You fit into whatever architecture your company uses. Example stackoverflow is a monolith and Netflix is a microservices based backend, a good backend engineer will fit in both these roles.

    • @yohanasfaw5563
      @yohanasfaw5563 3 года назад

      Lol scaling a monolith is the worst thing you can do. So many headaches come with that. I think we can safely separate people who build Monoliths compared to people who build good architectured microservices

    • @aditnegi2577
      @aditnegi2577 3 года назад +6

      @@yohanasfaw5563 A lot of companies have there apps written in a monolithic architecture that might be for a variety of reasons. What if one day you need to serve 50-60k thousand customers you can’t rewrite your app. Vertically scaling becomes very expensive after a point you need to scale horizontally in those cases.

    • @RacerRookie
      @RacerRookie 2 года назад +1

      Microservices project can all be in one repo like a monolith too, its just they are deployed as separate services

  • @Jeeperanthony
    @Jeeperanthony 3 года назад +9

    Would love to see videos like these include something like PLC / machine programmers. That field could benefit tremendously from many of the tools of the modern developer.

  • @MahfouzShehu
    @MahfouzShehu Год назад +1

    I'm a fullstack dev. When i was new, I used to think that front end was easier. The more experienced I got, the more I could see that front end web development is more difficult and demanding than backend.

  • @KDSBestGameDev
    @KDSBestGameDev 3 года назад +21

    I pretty much worked most of the roles once in my 25 years in the industry. If you become an absolute expert in frontend dev than your work isn't easier nor harder than a pentester or game dev. It is just different. I still kinda agree that the fundamental knowledge to get started might be higher for the later example.
    And I hat frontend dev, moving around pixels to match a psd file for example gives me more sleepless nights than squeezing the last ms or bandwidth out of a software.
    We all have our preferences.
    I liked the video! Got a new sub.
    Also a freelancer btw.

    • @AaronJack
      @AaronJack  3 года назад +2

      Thanks for sharing, Kevin👏

    • @edboss36
      @edboss36 3 года назад

      What was the most fun and least fun category for you?

  • @JonathanRose24
    @JonathanRose24 2 года назад +1

    Front end web development definitely has the lowest bar to enter, but it can get wildly complex

  • @Isaac-sf9sg
    @Isaac-sf9sg 3 года назад +11

    I was just thinking yesterday I wish you had a video explaining the difference with all of them! Thanks 🙏🏼

  • @brd5548
    @brd5548 3 года назад +36

    Finally, I can explain to my parents what I am doing in my job🤣! Jokes aside, I think this video summarizes up the general software development career pretty thoroughly and concisely. It does help me to explain my job to family and friends, great job, haha!

    • @mqsv
      @mqsv 3 года назад +1

      You should be able to explain what you do - just keep explaining at multiple levels. If you're both patient enough they'll get it :)

    • @Danielandradedance
      @Danielandradedance 3 года назад +4

      I'm a Wizard Mom & Dad just like I always wanted!

    • @electricimpulsetoprogramming
      @electricimpulsetoprogramming 2 года назад

      how you got your first job?

  • @aurealis2041
    @aurealis2041 2 года назад +1

    the fact you put game devs into the hard category, made me motivated to continue with making of my game. Thanks-

    • @sassy_gamer7899
      @sassy_gamer7899 2 года назад

      How hard is it to code cheats for a game ? I have decent knowledge on c++ and I’m looking at creating my own cheats for rust

    • @aurealis2041
      @aurealis2041 2 года назад

      @@sassy_gamer7899 why you asking me bruh

    • @sassy_gamer7899
      @sassy_gamer7899 2 года назад

      @@aurealis2041 you claim you make games so why wouldn’t you know how hard it is to get past eac ?

    • @aurealis2041
      @aurealis2041 2 года назад

      @@sassy_gamer7899 I make games, not anti cheat software. I would suggest you find something better than making cheats for games, there's a reason it's not so obvious how to make them.

  • @eberronbruce1328
    @eberronbruce1328 3 года назад +170

    Forgot an important software developer these days. Mobile Developers

    • @brd5548
      @brd5548 3 года назад +25

      I'm pretty sure mobile devs can be categorized as front end devs nowadays. Many companies now have front end devs do their app development, thanks to more and more mature tooling ecosystem in this area, specifically, for example, you can find react native, flutter, which are both great platforms for native app development.

    • @yokulen545
      @yokulen545 3 года назад +6

      @@brd5548 lmao

    • @hentie5371
      @hentie5371 3 года назад +13

      @@brd5548 While yes Mobile dev are technically frontend dev, but normally when we talk about frontend dev we really means web dev, which is quite different from native mobile dev in terms of the knowledge involved.

    • @ulbsualbrykya7141
      @ulbsualbrykya7141 3 года назад +7

      mobile devs = underrated devs imo lol.

    • @murdomeiring2934
      @murdomeiring2934 3 года назад +2

      And Fullstack, sure it is just 1 + 2, but should also fit in the complexity scale. I was thinking at 3rd or 4th.

  • @nevokrien95
    @nevokrien95 2 года назад +9

    I learning datascince now and honestly the preprocessing is harder than model building.
    With established packages u can write the models from latest reaserch from scratch.
    It is math intensive but thats the fun part. I like tryinf new things and thinking of new algorithems. Even when they fail horibly

    • @PerteTotale
      @PerteTotale 2 года назад

      that's the point were the know how of applied math, physics, stats and domain knowledge obfuscates all dev tricks anyone might have learned.
      indeed smart preprocessing is craftmanship, and peta data number crunching monkey buzznezz and a waste of energy

  • @MisterDivineAdVenture
    @MisterDivineAdVenture 2 года назад +1

    Unusually clear source. Up to date pan-survey of computer science. Comments Rich.

  • @blaisetelfer8499
    @blaisetelfer8499 3 года назад +27

    I guess the first and second category both apply to me: full-stack web dev. It may not be as complex as AI or embedded systems, but keeping up with the ever-changing frameworks, languages and databases keeps me plenty busy.

  • @sebastianmartinez5508
    @sebastianmartinez5508 Год назад +1

    As someone who began learning python a few weeks ago after being undecided between programming and psychology, and as someone who has meddled with marketing and article writing, it excited me when you talked about how the front end connects user experience with coding. A light bulb lit up inside me because I saw a potential to connect everything there. Either that or data science. I have a burning desire to eventually connect programming with psychology one way or another.

  • @amineacademy1544
    @amineacademy1544 3 года назад +6

    for the AI newcomers: use google colab to train models (Tesla T4 /K80/ P100)and google drive to directly download your datasets into it

    • @danielniels22
      @danielniels22 3 года назад

      but why do i feel it runs each cell pretty slow? i mean, just run a cell that printis "hello", and the loading symbol is slower than jupyter notebook. did i do something wrong or haven't i correctly prepared my Colab settings?

    • @amineacademy1544
      @amineacademy1544 3 года назад

      @@danielniels22 my first guess would be server latency

    • @danielniels22
      @danielniels22 3 года назад

      @@amineacademy1544 ohh.. is it from Google Colab itself? or do i need to fix it?

    • @amineacademy1544
      @amineacademy1544 3 года назад

      @@danielniels22 there's nothing we can do about it really maybe getting a better net would help a little

    • @danielniels22
      @danielniels22 3 года назад

      @@amineacademy1544 ohhh okayy thank u... But i really wonder why people use Google Colab. Idk why, but i still feel Anaconda's Jupyter Notebook is faster. They also provide something about tensorflow-gpu... Maybe i did miss something about Google Colab? Do you mind to share insights maybe? THank youuu 🙏

  • @theREMASTEREDone
    @theREMASTEREDone 2 года назад

    When you finnished the front end
    I knew you were a pure backend developer

  • @m3mee2010
    @m3mee2010 2 года назад +3

    Great video. Web3 and blockchain programming including advanced P2P networks and smart contracts could be considered as an addition in the next 5 -10 years.

  • @SulaimanBotha
    @SulaimanBotha 3 года назад +8

    Man, I need to step up my video editing game. Yours is on another level

  • @major5maximus
    @major5maximus 3 года назад +1

    Bro, your explanations of most topics is 100% on point!
    Easy to understand and process. Keep it up brother.

  • @NoneNullAnd0
    @NoneNullAnd0 Год назад

    Just came here to make sure you weren't dissin' the game devs.
    I am satisfied with your depiction.

  • @AsperTheDog
    @AsperTheDog 2 года назад +2

    Game engine developers are a funny group because they are basically toy makers but they make amazing stuff, like these developers are one of the main groups behind some of the most important optimization techniques like the fast inverse square root or memory arenas. I remember watching a conference about super efficient memory management made by John Lakos (one of the most important people in the whole history of C++) and he mentioned some of the techniques he structured in the C++17 standard had been in use for game engines for years. It's just amazing what they do, needless to say the fact that they not only work in low level but also have to learn to process data in dedicated hardware (GPU) just adds.

  • @Slayer-33
    @Slayer-33 2 года назад

    This is skanktacular my friend, this is helping me immensely.

  • @Vexxel256
    @Vexxel256 2 года назад +1

    Bios developing has to be one of the hardest jobs on the field especially when working with assembly instead of C

  • @apexhacker346
    @apexhacker346 3 года назад +2

    Listen Erlang has been a life saver for me when learning about scalability

  • @davidfrischknecht8261
    @davidfrischknecht8261 Год назад +1

    It always irks me when web development is referred to as "front end" development, as if desktop and mobile front ends don't exist. This video doesn't even mention desktop app development.

  • @henrythomas7112
    @henrythomas7112 9 месяцев назад

    Great video! Some key points were highlighted that I hadn't heard anyone else discuss. Thank you!

  • @nikilragav
    @nikilragav 3 года назад +25

    Overall, really nice breakdown!
    I think control systems might be missing (for robotics or electronic sensor systems. E.g. thermostats or self-balancing robots). There's some overlap here with embedded systems.
    I also think you can be in Arduino land without ever touching real embedded systems concepts like interrupts (I think this is a huge shame because they're actually more like how humans think) or more complex concepts like RTOS.
    I also make a distinction between people who do matrix math (ML, data science, signal processing, robotics people) vs people who do discrete math / combinatorics (routing algorithms, trees, shortest path kinds of things) vs backend data mangling stuff vs DevOps vs people who connect pre-existing APIs (can be front or backend) vs front-end UX

  • @tafellappen8551
    @tafellappen8551 3 года назад +3

    Indie game developers absolutely use existing engines like unity to make stuff. Its what most are probably familiar with and unless you have a specific reason to build your own engine, if your only goal is to get a game out the door and you have probably little if any income you would be absolutely insane to burn through ungodly amounts of time reinventing a wheel that already works perfectly fine for your needs.
    If youre an engine dev you are almost certainly working at a bigger company

  • @comedyman4896
    @comedyman4896 Год назад

    Whoever named a data engineering program 'Kafka' had a real sense of humor lmaooo

  • @colbymakaba7078
    @colbymakaba7078 Год назад

    Bro! this was insane, thanks

  • @ioannischristou2362
    @ioannischristou2362 2 года назад +10

    I am a "Senior Research Data Scientist" (that's my title) and a faculty member teaching Machine Learning, Data Mining, Databases etc. I liked your video a lot, exactly because my passion is also in developing new algorithms for AI/ML, and I consider myself foremost to be a programmer! However, despite popular belief, the main languages of ML developers is not Python and R; these languages are mostly suited for the "other" category you mentioned: the "users" of other people's algorithms. I claim that in the highly sophisticated (and mathematical/statistical) world of ML, the languages that should be used are the HPC (High Performance) ones that you mentioned: C/C++ (see TensorFlow) and my personal favorite, Java, for its great libraries for concurrency/parallelism/distributed computing. ML is a field where high-performance matters a lot, as very often the computations are extremely complicated, or you deal with "Big Data" (with a capital ""B").

    • @nicosoftnt
      @nicosoftnt 2 года назад +2

      Hi Ioannis, as a Senior Data Scientist would you by any chance recommend any books for Machine Learning? Would a high level of Calculus and a notable understanding in Statistics allow someone to understand Machine Learning algorithms? Would you say a degree in Math is compulsory to follow your steps, along with a Computer Science degree?

    • @nicosoftnt
      @nicosoftnt 2 года назад

      If you are as smart and capable as you claim you are, then you must surely know what you have really done here. Nothing but separate yourself from the Python community (those "users") and positioning yourself in a different league, no wonder that's your favorite thing about this video, it speaks directly to your ego. The truth is, nobody gets anywhere without collaboration, everybody sits on top of the shoulders of giants, and thus, if you are as capable as you individually claim, in a group setting you are only better than someone who is completely useless. Humans (like other lifeforms made of bone and flesh) are very fragile and have depended in shared knowledge preserved through generations, in that sense you have proven yourself infertile. If you hold a position as a faculty member, it is clear that this was not a calling that was chosen by authentic vocation. Enjoy your temporary status while it lasts, as technology such as GPT-3 has proven to be highly efficient at algorithms and will likely continue to grow in that field first.

  • @miggu
    @miggu Год назад

    Great video, albeit a bit generalised .I'm sure a lot of people have discussed this already but according to my personal experience things simply take much less time and complexity decreases when you become a backend dev (I can attest to it) , front end is riddled with quirks and you have to confront the lack of uniformity where the code runs (the code will run in many environments), back end has just one environment where things can be locked down to a single compiler and environment which you can control , also front end code is closer to the user therefore making it more brittle, as complex interactivity will create a vector for failed behaviour , back end has challenges of memory management, resources , bottlenecks, outages ofc, but in my experience they took less to fix . Tasks like creating a data API, take a fraction of what it needs to happen to display it, and make it work for several displays , create interactivity etc, the logic nowadays resides in the front end , some backends just spit out data. If someone that has worked in both has a different opinion I'd like to hear

  • @michaeljmeyer3
    @michaeljmeyer3 Год назад +1

    20 plus years moving around most of this list.. .from. Starting off with integrated, moving to webdev, then full stack - picking up IoT, DevOps and always working in Game Development .. I think calling webdev easy is just plain wrong. The complexities between these development spheres are all different and grading them on difficulty seems extremely silly and just seems to serve no real healthy purpose. Especially since different types of people will just be drawn to different spheres.
    They all just take different mindsets and all take a lot of experience to get great with them. I have met game engine designers who just cannot stand - or really do - web development, despite them having similar design to code journeys.

  • @sevzen
    @sevzen 3 года назад +5

    just when I thought I couldn't be any more intimidated.

  • @seanmumford2358
    @seanmumford2358 Год назад

    This cleared so much of the mystery up and was easy to watch, this guy nails it🔎

  • @AnonyMous-jf4lc
    @AnonyMous-jf4lc Год назад

    Nail on the head with embedded systems. You have to watch how many variables you use and precisely control buffer size. Your code is specific to the hardware. It’s a blast!

  • @mutantbob
    @mutantbob 2 года назад +1

    I hear nothing but nightmares from my friend in front end web dev. Small sites are easy, but those high paying jobs probably have insane levels of tech debt and multiple versions of jQuery that have been customized on the same page and multiple competing frameworks.

  • @sergiorome42
    @sergiorome42 Год назад

    As an electrical engineer, I am in fact getting into AI, from learning how convolutional neural networks work to applying fuzzy logic to finite state machines

  • @riekumar6999
    @riekumar6999 Год назад

    I've done quite a few of these positions and nothing has satisfied me more than game dev :P

  • @CMDR_Hadion
    @CMDR_Hadion Год назад

    You also have Full-stack devs, which is a front-end Dev, a backend dev, a microservices dev, and a Devops Engineer all in one salary!
    Kill me.

  • @SomeAndrian
    @SomeAndrian 2 года назад

    MIssing and absolutely necessary Software Developers:
    1. Database developers (not users those that use the database, developers)
    2. CAD developers as in people that write things like SolidWorks, CATIA, AutoCAD, Rivet,
    3. Graphics developers, as in the NVIDIA Team, Autodesk team, VRay, 3Ds Max
    4. Medical devices (although that's overlapping with others, they do have rigorous guide lines to follow that one must know)
    5. The CAD field has so many subfields that it's hard to say it's on its own. You have Verilog, you have digital simulation, analog cirtuit simulator, those are all considered as CAD but are radically different from other CAD such as SolidWorks, or Rivet; those in turn are different from Animation CAD systems like 3Ds Max and Blender

  • @Gilltrick
    @Gilltrick 2 года назад +1

    As a game dev it is never wrong to know how your triangle actually get rendered^^

  • @jordanatkins8841
    @jordanatkins8841 3 года назад +1

    Thanks for the awesome work Aaron!

  • @kazuma8696
    @kazuma8696 3 года назад +1

    I want to start learning how to code and I came across your channel, your videos overwhelm me... But I can't stop watching them 😞

  • @Zumito
    @Zumito 2 года назад +1

    i am a c++ developer because i am creating a procedural real time game (and it's have a lot of procedural things), but with some of tools, and a good code you can get a easy maintainability

  • @moscripts
    @moscripts Год назад +1

    Jack, this video is just sooo grreat!!. so loaded with value. can't thank you enough. I actually went to your about page hoping to see your email but...nada
    I'm a math graduate and I'm just start my tech journey...I'm interested in software develoopment but still kinda confused where to specialize. I still need a lot of guidance.

  • @nukeman444
    @nukeman444 2 года назад +1

    At times, the lower the tier such as front end and web development, the higher the pay.
    *Reason 1:* They interact with a large cross section of people, from the CEO down to the outside testers and even HR.
    *Reason 2:* Personal experience, since having a sales background, I knew exactly what the clients wanted and knew their language.
    *Reason 3:* Even though working with back-end Devs, most end user requirement communication through all departments passed through me.

  • @legocreator768
    @legocreator768 Год назад +1

    Chris Sawyer made Rollercoaster Tycoon in 99% x86 Assembly language... on his own. Graphics and sound and such were handled by a few others but all the code was done by SAwyer. Absolutely incredible, he is a programming god

  • @armanx2
    @armanx2 3 года назад +3

    I am not sure how that works in USA but here in Belgium where i am from , we devs do kinda all like front-end (even mobile) , back-end, db design , security , dev ops all together. It's called full-stack if you will and these are here the most required dev jobs.

  • @rusmaakatupal4723
    @rusmaakatupal4723 Год назад

    I believe embedded cybersecurity engineers are the best.
    Planes are not hacked only in movies

  • @MichelleJones-cp2tv
    @MichelleJones-cp2tv 2 года назад

    Your videos remind me why I love being a developer. Thanks

  • @jglopez5855
    @jglopez5855 2 года назад

    I was baited to think this was a parody. Fortunately it wasn't and the content was just what I needed without knowing it. Thanks a lot

  • @l34l
    @l34l 2 года назад

    It's nice to find out I'm the most disposable type of programmer.
    I assume, according to the industry.
    Very telling.

  • @DarkOutsideNow
    @DarkOutsideNow 3 года назад +1

    I did OpenGL C++ for 3D graphic development. Unity now seems like a walk in the park.

  • @natalieeuley1734
    @natalieeuley1734 2 года назад

    Can't say I agree with your order whatsoever, but I appreciate the descriptions you gave. One crucial thing you forgot to mention with front end is accessibility. A truly responsive, accessible, user-friendly, progressively-enhanced PWA is very difficult to build. If front end is easy to you, then you are shafting at least some of your users.

  • @erickmoya1401
    @erickmoya1401 2 года назад

    Is more like a knowledge requirement list, where the more on the right are the most "scientific" parts of software development. The closer to the left the closer to the end user.

  • @boris.karavasilev
    @boris.karavasilev 3 года назад +4

    Great video! I am deciding on which direction to go next after my bachelor's degree and this video made the options more clear. I will probably stick to web dev and go more in-depth and focus on scalable and bigger projects. I also like game dev a lot but if it is a lot of work for not so much money, it is probably not worth it.

    • @skymonkey30
      @skymonkey30 3 года назад +1

      Yeah unfortunately it seems to be one of those career paths that you have to enjoy more for the game creation and less about the money. Creating video games is a huge business Market and the pay for those people should never be low-balled.

  • @michael_gaio
    @michael_gaio 2 года назад

    you missed Web3 / Blockchain / Crypto / NFT / smart contract development …
    a class of it’s own

  • @ErikaMartinez-mp7zj
    @ErikaMartinez-mp7zj 3 года назад +1

    Great the answer that I was looking for.

  • @lucaszecat
    @lucaszecat 2 года назад

    You missed the most immerging one: Blockchain Dev

  • @Jbrandao10
    @Jbrandao10 3 года назад +5

    Some valid points but I’d specify something that you threw out there. Web Developer != Front End Developer. “Web sites vs Web apps” like you mentioned for example. Many different types of systems need a GUI. Which is where a front end dev would come in. Whereas Web Developers stay in the realm of browsers exclusively even using tools like Wordpress. Just my two cents.

  • @michaellatta
    @michaellatta 3 года назад +5

    Categories are pretty good. Some of the examples are a bit less cutting edge (but that may mean more quantity of jobs). I would add native mobile as a category though.

  • @chantelvenessa
    @chantelvenessa 3 года назад

    This was really helpful, thankyou

  • @ariannabotaku
    @ariannabotaku 3 года назад

    As a school DevOps I have to integrate systems that do not efficiently talk to each other. I have about 8000 lines of Perl code to daily automate data syncing between services, service uploads, automatic account creation/update/disable/delete across multiple incompatible services, manage Apache, Samba, NGINX,Postfix, MySQL, PostGRES and MSSQL database servers and every major OS platform. I also manage the 7 node VMWare cluster and SAN array. So yah, schools do not have a lot of money for employees or services so often you have 1 or 2 DevOps/Admins.

  • @yatridave13645
    @yatridave13645 20 дней назад

    1. Web developer / frontend developer
    2. Web dev backend
    3. Backend microservices
    4. Data engineer
    5. Sysadmin/ devops/ cloud Engineer
    6. Backend embedded system
    7. Backend performance software developers
    8. Hackers/ pen tester
    9. Game developer
    10. Data science and machine learning

  • @TheEvertw
    @TheEvertw Год назад

    One reason why e.g. embedded development is paid relatively badly is because their work is always seen as a sunk cost by the bean counters. Whereas frontend development is a running cost for a company's primary process. And because our work is much more fun than the other types of work. It has its own satisfaction to create a new device.

  • @AaronandAsh
    @AaronandAsh 3 года назад +3

    Hey Aaron,
    Thanks for this video! I learned alot.
    Aaron

  • @JeSus-hl6zj
    @JeSus-hl6zj 3 года назад +5

    Great video! Although I think you missed that AI models and algorithms are not implemented in Python or R, which are actually just the interface to them, but in C or C++

    • @sonicemitter6131
      @sonicemitter6131 3 года назад +1

      Wait, so would learning C++ be better for AI and machine learning? Assuming one wants to make money within 6 months.

    • @JeSus-hl6zj
      @JeSus-hl6zj 3 года назад +3

      @@sonicemitter6131 No. Decide weather you want to develop machine learning software or just be a machine learning software user. Both will require you to code, but the first one involves fast, compiled languages and tons of math and computer science knowledge and the latter involves probably Python and much less knowledge of what is actually going on. The usual job titles you see refer to being a USER, you'll just use machine learning algorithms, not implement them.
      So yeah, if you want to get a job fast, learn python and python machine learning libraries.

    • @sonicemitter6131
      @sonicemitter6131 3 года назад

      @@JeSus-hl6zj Thank you for the information. I have more research to do it seems.

    • @edboss36
      @edboss36 3 года назад

      @@JeSus-hl6zj so if I wanted to develop a ML software/alogirhtm (the one that involves a lot of maths and cs) will c++ be a good language for that?

  • @philmarsh7723
    @philmarsh7723 2 года назад

    And another category: The engineer who loves writing their own custom applications for engineering CAD and data analysis.

  • @cato447
    @cato447 3 года назад +4

    That’s a really nice video for starting cs students

  • @julianrodriquez454
    @julianrodriquez454 2 года назад

    Missed 'Full Stack' devs. My work encapsulates at least half this list. 😆

  • @andreap9756
    @andreap9756 3 года назад

    I really enjoyed this video! Thanks!

  • @core36
    @core36 Год назад

    Back end dev, which is going to be number 2
    I felt that 💀

  • @pelic9608
    @pelic9608 3 года назад +3

    Don't ever be intimidated by those mentioned "I programmed x in 10 minutes" or whatever videos! They copy from an off-screen, prepared code. That's about it.

    • @lacumbancha6273
      @lacumbancha6273 3 года назад +2

      Writing code is usually fast, the thinking part is what takes time

  • @mathunpeeled
    @mathunpeeled Год назад

    I enjoyed this!!

  • @scottisitt
    @scottisitt 3 года назад +2

    Very engaging video...and informative. Thanks for breaking this down for us!

  • @bernardus3289
    @bernardus3289 2 года назад +1

    Im learning Web dev and the biggest pain for front end is the responsiveness and managing different types of browser supports. Well it's a pain for me but I believe there is more.

  • @skilz8098
    @skilz8098 Год назад

    There's a few that I could add to this list. The first one is related to one you already mentioned being the hacker type, but instead of being a hacker looking for direct vulnerabilities would be the reverse engineer. The following are more of a specialized field but they warrant their own category and that is Audio Engineering or even now Lighting Engineering. Aside from those another that would be in this specialized field would be Avionics as in Navigational Software Engineering involving anything from basic Auto GPS to Missile and Rocket Guidance systems. I think these are worth a mention.
    The last one that I can think of to add to the list is quite often overlooked and it is kind of niche, but I would put it up there around the ranks of Game Dev concerning those who build their own engines and tools, compiler, and OS devs and this would be Hardware Emulation. Hardware Emulation is kind of on a differently level. It's a cross between pure software engineering and hardware engineering. You don't have to necessarily be able to build or design your own CPU or Architecture, but you have to at least understand their internal workings right down to the registers, memory addressing schemes, cache hierarchies if they exist, etc, ... This genre of programming has been around for some time, but now that PC performance has skyrocketed within the last 10-20 years, this is becoming more feasible and popular for people to design these kind of applications. Just look at all of your older retro gaming systems such as the NES, Playstation, etc... Right now there's an active team that has been working on and is still working on a full scale PS3 Emulator.
    You are basically writing a piece of software in a high level language primarily in C / C++ but you also have to know and understand Assembly to a very high level of degree and you have to be familiar with multiple architectures and instruction sets. You also have to be able to convert from one Assembly to another with great precision. These kind of programmers are trying to mimic the entire functionality of an already existing older system / architecture even right down to their hardware bugs... I'm 100% self taught I have studied and worked on hobby projects in many of these fields. Of these I like the Game Engine / Physics Engine - Simulator Design and I like Hardware Emulation... I tried to get into Compiler Design and OS Design but they are very large scale projects that will consume a lot of time... Even Game Engine Design is quite robust yet compared to OS Design, that's an entirely different beast. Now, doing what Ben Eater did with his 8 Bit Breadboard CPU, that seems like it would be a fun project to do.
    Other than that great video and I think your main points are just about spot on...

  • @xainfn4837
    @xainfn4837 11 месяцев назад

    Solid informative video with great depth in every sector

  • @WeightlessBallast
    @WeightlessBallast Год назад

    An interesting video! I feel that I learned a lot about the concepts between front-end and back-end. One area or niche in programming that I did not spot from the video is DSP programming.