Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

I've been learning C# for Unity. How can I take this to a career?

Discussion in 'General Discussion' started by Marscaleb, Jul 25, 2020.

  1. Marscaleb

    Marscaleb

    Joined:
    Jan 7, 2014
    Posts:
    579
    I've learned a fair amount about programming from my efforts to build a game in Unity.
    There is still a lot that I do not know; I've really only focused on C#, and I still don't really know my way around Visual Studio, and I don't know how to create a program outside of Unity.

    But I've still learned a a lot about programming.
    And I'm thinking I should try to turn this into a career. But I don't really know what direction to take this. I can say "I could take a programming class and get a programming job" but that is extremely vague. "Programming" is a broad subject.

    What kind of programming jobs are even out there? What kind of value do they tend to have? How similar is the work to the kind of work I've been doing with writing scripts in Unity?

    I saw a video of a guy talking about programming jobs, and he was mostly looking at stuff pertaining to web development. I expect that's what a lot of programming jobs are these days, but it looked completely different to what I'm doing with Unity.
     
  2. koirat

    koirat

    Joined:
    Jul 7, 2012
    Posts:
    384
    Language is just a tip of an iceberg.
    What takes time is the framework and .NET is huge!!!
    Also checkout .NET full stack developer.
     
  3. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    2,493
    I don't have any answers. For me:

    I started dabbling with Unity about the time of my join date. I'd just finished a degree in Chemistry and was looking for a job, with the plan to return to school in a year. I didn't get far in using Unity, but it got me comfortable with the idea of programming.

    I returned to school the following year. I did a dumb thing where I worked with two different professors, and Prof B had a student building a program in C++. I did some very, very simple stuff for him, mostly just writing documentation. Prof A used some really old, really simple simulation software, and I discovered a bug in one of the programs. I'd been dabbling with Unity for a couple of years at that point, so I decided to replicate the software. I initially did this in Unity; I moved next to a WinForm. During my last semester of my degree program I took an intro programming course.

    Searched around for a job for about 6 months. Finally got hired for something much different than what my degree was in. This job environment offered a lot of freedom to help with significantly different things, and on one project there was an opportunity to do some rudimentary scripting in Python. I took advantage of that, and wound up writing code there. Another portion of the job was doing more intensive programming stuff, and after showing proficiency in the simpler area I was able to help out on the bigger project.

    One thing led to another and now I pretty much exclusively write code for my job.

    I don't have any answers. I would suggest learning Python, which will be useful for scripting tasks, and also learning to build actual non-Unity programs in C# - so WinForms, or WPF, or Xamarin - which will be useful for more intensive software development. I'd also suggest looking around your job for ways to use your programming expertise. Automating something, or building really simple software. Get real-world experience using programming, not just in the Unity environment for recreation.
     
    angrypenguin and Martin_H like this.
  4. Vryken

    Vryken

    Joined:
    Jan 23, 2018
    Posts:
    1,277
    Unity is a development framework like any other. To create anything outside of Unity, you'd simply use a different development framework.
    Which framework you use really depends on what you want to make. Websites/Web applications? Native desktop applications? Mobile applications? All of the above? Something else?

    Pretty much. The web is were you'll find most application-development jobs.
    Though application-development is only one subset of programming. You also have things like developing operating systems (mainly prevalent within the Linux community) and embedded systems among others.

    Every development framework has their own quirks with how they go about their development process.
    In Unity's case, that would be learning about things like MonoBehaviours, callbacks (Awake, Start, Update, etc.), the libraries under the UnityEngine namespace, how to use inspectors, manage objects in a scene, import assets, etc.

    But some things you learn can be translated into other development areas, like the C# language, for instance.
    C# is an object-oriented programming language, as are a lot of others nowadays. Any object-oriented practices you use in Unity can be used in a lot of other places, such as inheritance, polymorphism, composition, abstraction, etc.

    Once you learn the fundamentals of a paradigm, learning a new framework that uses the same paradigm is really only a matter of learning its syntax, libraries, and its workflow structure.

    There's a whole metric ton of different programming jobs, as mentioned previously: application development, OS development, embedded systems, and others.

    Since you're already familiar with writing applications using Unity, one thing you can try is looking up "application developer jobs" and checking out the requirements list they ask for their applicants.
    Anything you don't recognize, you should look up to see what it involves.

    For anything within the .NET environment, you may find these types of requirements among others:
    • C# programming language
    • Visual Studio IDE
    • Web applications in .NET Framework/.NET Core
    • MVC Web applications in .NET Framework/.NET Core
    • Xamarin (hybrid mobile applications)
    • Entity Framework (Microsoft's database interface framework)
    • Universal Windows Platform (UWP)
    • Windows Presentation Foundation (WPF)
    • WinForms
    For anything within the Java environment, you may find these types of requirements among others:
    • Java (obviously)
    • Eclipse/Netbeans/IntelliJ IDEs
    • Spring/Spring Boot
    • Java Enterprise Edition (J2EE), for creating web applications
    • Probably a lot more that I'm forgetting at the moment
    For anything related to mobile application development, you may find these types of requirements among others:
    • For native Android specifically:
      • Java and/or Kotlin programming languages
      • Android Studio IDE
    • For native iOS specifically:
      • Swift and/or Objective-C programming languages
      • Xcode IDE
    • For everything else:
      • React Native
      • Ionic Framework
      • Xamarin (again)
      • Apache Cordova
    For anything related to web development, you may find these types of requirements among others:
    • Front-end web development:
      • HTML5, CSS3, JavaScript, and TypeScript languages
      • Popular JavaScript frameworks ("Angular", "Vue.js", and "React" are the big ones)
      • JQuery
    • Back-end web development:
      • PHP
      • Java (if working within the Java environment)
      • C# (if working within the .NET environment)
      • JavaScript (if working with Node.js)
      • Node.js
      • REST API
    For pretty much everything:
    • Amazon Web Services (AWS)
    • Google Cloud Platform
    • Microsoft Azure
    • Firebase
    • SQL
    • NoSQL
    • Git or other version control software
    • GitHub/GitLab/BitBucket
    And there's likely a ton more.

    Now if you're completely overwhelmed after reading all this, don't worry. Everyone else gets to that point as well.
    So take a deep breath, and start small.
    You know C# and Visual Studio. If you want to try making something outside of Unity, maybe checkout creating a simple console app, and then maybe try out the other types tutorials on things you can make in Visual Studio.

    And again, even though these tutorials are for the .NET environment specifically, much of what you learn can be applied in other environments, so don't worry about having to learn everything all over again when you transition to a different framework, because you won't have to.

    Good luck and have fun.
     
    Yanne065 likes this.
  5. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,023
  6. ForceVFX

    ForceVFX

    Joined:
    Jan 21, 2011
    Posts:
    585
    The <image> tag was included in the HTML 2.0 specification released in 1995 by the W3C.
    When I learned that, I knew, this would take over the world, so I begged my brother to buy me a cheap HP Computer ( i was staying on his kitchen floor, times were tough!), taught myself HTML, In 6 months I built some pages, got a job as a web designer, after 1 year I learned ASP (Active Server Pages).built a couple Dynamic Web Pages, and within 2 years I was full time at Cisco Systems, within three years I was at $100,000 a year w/ full benefits and stock options..not a class, or work experience besides the last 3 years of self taught grit.

    20 years later unity found me....and changed my life..again.
    Started with Unity Script, but quickly realized the folly of a weak typed language(no defining variable types?).
    Learned C# with unity and used that to move to .net and MVC Web Development.
    something exciting and new...but using the same methodology I have learned my entire career,
    Now I work with both Unity and Unreal, C# and C++.

    Yes C# can be a career without a huge educational debt.
    you too can be the exception to the rule,
    but are you willing to put in an exceptional work ethic?

    *because I also had a strong art, layout and graphic design skills, combined with my coding and CSS design,was a part of my moderate success in the work force.

    Yes, you open up more career options with 'pure coding skills', both web, and game tech.

    p-
     
  7. rivstyx

    rivstyx

    Joined:
    Sep 6, 2018
    Posts:
    33
    I have been working as a professional developer for over 25 years and have worked for very large and small companies in my career. I have been very successful and was able to "retire" in order to devote the last few years to my real passion of game development.

    I started in C/C++ in the early 90s all the way through C# currently(and dozens of other languages along the way :)) I would suggest you get some form of formal training. You do not necessarily need a 4 year degree but it helps. You need to learn concepts that are not necessarily unique to C# to be a good C# developer. Discrete math, Data Structures and Algorithms, Heuristics, Patterns and Practices. If you want to be a professional developer you need to be able to work across all tiers as well and know what each tier is for. This is known as the full stack. So SQL and possibly NoSQL databases, Rest and maybe even WCF based services for legacy support. Javascript frameworks such as Bootstrap, Angular, React etc. Serverless/Cloud computing as well. All aspects of the Software Development Lifecycle(SDLC). So there is a lot to learn and C# is only the tip of the iceberg.
     
    Last edited: Jul 30, 2020
  8. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    4,865
    Are you missing a comma? You can get to 6 figures pretty easily, is the US a mid-level developer in many fields will be tipping 100k. But I don't think many salaried programming jobs pay high six figures. A senior staff engineer at Google including stock options might get close to 300k if they are lucky.

    ---

    To the OP if you aren't restricting yourself to games development there are a pleotheroa of options but most of them probably start with a degree.

    ---

    Types of Company


    The type of company you work for will have a big impact on the type of work you do, how you get compensated, and your opportunity for promotion.


    Big Enterprise
    - Companies like banks and insurance companies generally pay mediam to high salaries, have good long term promotion opportunities if you are willing to transition to a manager or architect, and have reasonable stability (watch out for the mass lay-offs when new executive mangement comes in).

    A degree wont be 100% manadatory but it will be close: not having one will often get your resume filtered out very early in the process.

    On the negative side the bureaucracy and red-tape can be very frustarting, although you probably wont see too much of it for the first year or two. The work you do will probably be limited to very specific problems for long periods of time which might get a bit boring.

    Small Enterprise - The work will be more varied and you will get to have more impact on what is being built. If the company is growing fast you will have opportunities for promotion, but often you can be stuck in the same role for many years.

    The degree requirement will be less stringent than the big companies but it will still help a lot to get your foot in the door.

    Scale-Ups (Start-ups that have secured Series B funding or large Series A funding) - There will be a lot of buzz and a lot of new faces which will make things feel exciting, but for the most part this will be like working for the small enterprise except you work longer hours, and the management structures are very unclear.

    You will probably get some options, but don't be fooled, after dillution and the years it takes for options to vest and then for the company to exit, in most cases you would have been financially better off at the bank job.

    If the start-up is successful what you do gain is a resume that will look great, and also a very real chance of rapid promotion.

    A degree will not be mandatory, paticularly if you can show relevant work like open source projects or Unity games ;)

    Start-Ups - You will have a much bigger sense of influence, and your role will likely be much more varied. This will be a pretty challenging position for someone who is new to the workforce as you wont have a lot of structure and probably not a lot of guidance.

    Stock options will likely be larger, but even here, unless the company exist at Unicorn levels (or you are getting co-founer type equity), don't expect to come out rich. Most start-ups fail and even the ones that are success don't typically exit for billions.

    The main benefits here are similar to the scale-up but more so. If you are in the first ten hires you might start as a junior developer and five years later come out as Head of Engineering.

    Of course the risks are also greater by a long margin too.

    Consulting Companies (Large) - Consulting companies can be very lucrative places to work and are a great way to gain a lot of experience fast. However particularly for grads it can be very tough: the expectations on work hours can be gruelling and the competition for promotion will be fierce (and probably not based on how well you code).

    Be wary of getting stuck on a big project for years. The main reason to join this kind of company as a grad is to get lots of varied experience and travel on the companies dime :)

    Degree will be required. Consulting companies care about the 'look 'of things, because that's what their clients care about.

    Consulting Companies (Small-Med) - This is a tough one becasue it is so varied. Generally people break away from a larger firm, form their own firm so they can get a bigger cut off the consulting rates, and poach a client or two. From here your experience would depend so much on the founders. I'd say shy away from these kind of companies for a first job unless they have a sterling reputation.

    ---

    In short you are going to get a lot more opportunity if you get a degree. One option might be to freelance while you do a degree, either full time or part time depending on your own comfort level.

    (Obviously these are all gross generalisations, and there will be many exceptions, variations etc, I still think it is useful)​

    ---

    Fields of Work

    I wont list every field (of course), but let me break it up in to some categories.I have not included domains which are not typically programming roles (e.g. networking, security or UX design).

    Back-end Engineer

    Technologies like Java and C# .Net are deeply ingrained in countless projects, and if you focus on one of these languages you can be pretty confident of having work for a long time to come. You will need to keep up-to-date with the various frameworks and trends that rise to popularity, but there's little chance these jobs wont be around in the future. A bit of a crowded space but theres a lot of work to go around. It is very traditional software engineering work.

    Front-end Engineer

    Javascript based frameworks like React and Angular used to make the user facing parts of an online application. Salary, demand, and marketplace are all similar to back-end development. There's a chance for a bit of creativity and graphic design in some of these roles, but in larger companies, or companies with a strong UX focus, the role will be more about building what others have designed.

    Full-Stack Engineer

    Combine both of the above with a predeliction towards front end technolology. Will typically mean using NodeJS. Becasue you cover the 'full stack' you will often have a good amount of ownership and control over what you are building which might suit those who like to build complete things, rather than be a cog in the wheel. Be wanred in a large company full-stack developer may just mean, we'll make you a front-end or back-end developer based on what we need at the the time.

    Mobile Engineer

    Like a front-end or full-stack developer except you build mobile applications instead of web applications. Could mean native development (Swift, Java) or using a framework like React Native. Over the last five or so years this has left the 'speciality curve' (see below) and become part of the status quo, so expect normal salaries. Like front-end and back-end development this won't be going anywhere soon.

    Note: When major new languages or frameworks emerge you can jump on board early and get similar benefits to the 'specialisation' item covered below.

    Application Developer

    Like a full stack engineer, but building desktop applications (C++ would be the langague of choice for the most part). This is very traditional engineering work but also a (slowly) dying field. I don't expect it will ever actually die, but the bulk of work these days is in building online and mobile applications. Desktop applications are often skipped or added as an afterthought (e.g. see the Slack desktop app which is basically just a poorly performing wrapper around a web app).

    If you are already in the field I expect you are fine, but I wouldn't recommend this for new developers unless they have a really strong interest.

    DevOps / SRE

    A big trend over the last 5-10 years, in part fuelled by the prolifferation of cloud, has been the transition of infrastructure build and management to be driven from code (this is not all that DevOps means, but its what most companies mean when they are hiring). Its still quite different from traditional programming/engineering, but is growing fast and and if it holds your interest its likely a great track for both salary and security.

    Data Engineer

    There is a big focus from companies both small and large on collecting and processing large volumes of data to gather some kind of competitive or oeprational advantage. Data scientists focus on the techniques and algorithms, but they typically aren't the engineers who build the data pipelines that effiecintly collect and process this data. Furthermore as the tools and technologies to support this have developed the need for 'science' has reduced and the need for 'engineering' has grown. This area will be undergoing growth for some time to come and there is a skill shortage. The work sits somewhere between devops, research science, and traditional engineering.

    Specialisation in 'Emerging' Technology

    Although not a domain per se, its worthy of calling out: there are many areas where technology has reached a point where it becomes useful to a lot of companies, but where there is a dearth of people who have the neccessary nous to leverage the tech. Technologies like blockchain or chatbots are in the tail end of this cycle (3-5 years ago there was little expertise, now there is more, but it still not common).

    Finding some area like this where there is strong interest, but little expertise, can be a great way to rapidly accelerate your career progression or to bring in lucrative consulting contracts. What's more you can often build your expertise through open source projects or personal projects. If you are competing with people who have no experience an open source contribution or a released project of your suddenly becomes like gold :)

    Look for areas that have left academia and have maturing tools. Speficic tools in areas like AI and AR spring to mind.

    (There are a many other domains, but I've tried to cover some of the key ones, which might give a bit of insight)

    ---​

    Career Track

    Will update or post again when I get some time.
     
    Last edited: Jul 29, 2020
    bobisgod234 and Yanne065 like this.
  9. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    4,865
    High six figures doesn't have a specific value but it would generally mean 700k plus (else it would be mid six figures or low six figures). I'm not saying thats not possible, of course it is, but its far above the mean salary for any of the positions you listed. You made high six-figures per year, thats great, but it is not the norm even for talented programmers who are willing to move in to a tech management track, to reach that level of salary in their career, let alone in 'no time'.
     
  10. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    4,865
    ---

    And just to be clear when I referred to the I comma meant turning this:

    "bring home high 6 figure incomes in no time"

    in to this:

    "bring home high, 6 figure incomes in no time"

    Which is a much more reasonable expectation.

    ---

    (Excuse double post I meant to edit)
     
  11. rivstyx

    rivstyx

    Joined:
    Sep 6, 2018
    Posts:
    33
    Yes Grammer Police :) If you also notice I had a smiley on it so I was not being entirely serious. What are your thoughts on the actual content of my post and not spend all your time and a huge rebut about a comma?
     
  12. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    2,493
    The comma affects the content of your post.

    That's the point he was making.
     
  13. rivstyx

    rivstyx

    Joined:
    Sep 6, 2018
    Posts:
    33
    I have actually deleted the offending line and lo and behold it did not change what I was trying to say in the slightest. I'll simply go back to building games now. No need to fret over a misplaced comma :)
     
  14. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    4,865
    Whats the point of playing the high and mighty card when you continued to argue? Your lack of comma had confused me, leading me to believe you were making a point which I didn't think was helpful, and your follow up post seem to be supporting the same claim. It is useful to clarify such things.

    I don't agree with your conclusion that you need to be able to work across all levels of the stack; I think its a great skill to possess, but not required to get hired in to a grad/junior role. On the flip side for entry level positions you need to have something to distinguish yourself, and being able to talk comfortably across different areas of the stack does imply the kind of interests and attitude that many will be looking for (open source contibutions and side projects are other good ways to distinguish yourself).
     
  15. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    16,153
    I'm sorry but the following just entered my head upon reading this post. :p

    <Player A> Hey, dev, X has Y bug.
    <Player B> Technically, player A, it's not caused by Y but by Z.
    <Dev> It's okay guys I ripped out the feature so you won't have to worry over what the bug actually was.

    Ironically it's very relevant to my current situation. Two people in my group have been discussing a bug back and forth and I'm the poor soul forced to make sense of the whole thing and fix it. I'd love to jokingly say we can just remove it but it's the input system. :(
     
    EternalAmbiguity likes this.
  16. rivstyx

    rivstyx

    Joined:
    Sep 6, 2018
    Posts:
    33
    Not high and mighty. Just did not want a joke sentence with a misplaced comma to take away from the actual content of the post.

    As far as full stack. I find it is almost impossible to make a career out of knowing one language and one tier. You at least need to understand client/server and where C# is a good choice. I have never met a developer that did not understand and (maybe begrudgingly :)) work across different tiers. For example, a C# developer may need to talk to a SQL database. In this case they may need to know SQL. That crosses multiple tiers(DAL and BAL).

    Even if they are using an ORM like Entity Framework you will need to understand code first vs database first.

    If you code in a vacuum without any regard to the stack you will be sideswiped with issues you had not addressed and your open source project will be garbage. How many people in history have found out the hard way that their projects worked great on their local machines but were not thread safe or could not be ported to a different platform :)
     
  17. rivstyx

    rivstyx

    Joined:
    Sep 6, 2018
    Posts:
    33
    There is a slight difference between removing a sentence and a working line of code :) What I did would be more analogous to removing a comment from the script. That would not affect the feature and maybe made it easier to read.

    My point was arguing about that one sentence was unnecessary. It had nothing to do with the actual content and was simply meant as a joke. For some reason they decided to focus exclusively on that line and not really address my points.
     
  18. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    4,865
    I was thinking in terms of an entry point to the industry: it is a lot to put on someone to suggest they need learn the full stack before they start working (and where do you draw the boundaries - basic *nix operations for sure, but manually write iptables rules for a kubernetes cluster, probably not). Reality is most grads come in knowing very little that is applicable to their job, so as long as they have some way to prove their aptitude and attitude they should be fine.

    Across a career I would expect people to broaden their knowledge across both languages and tiers.
     
    Last edited: Aug 1, 2020
    EternalAmbiguity likes this.
  19. rivstyx

    rivstyx

    Joined:
    Sep 6, 2018
    Posts:
    33
    I fully agree you don't have to know the entire stack. However, the more of the stack you know the better. What I say comes from experience both as a professional developer and hiring manager. I Have personally hired dozens if not hundreds of C# developers and I have never met nor hired one that only specialized in C#. They had to understand where they fit into the enterprise.
     
  20. pekdata

    pekdata

    Joined:
    Mar 16, 2019
    Posts:
    7
    If you are used to programming games solo you may be in for a disappointment regarding your projects in the regular software development world. They are usually not quite as exciting for a junior programmer. But I think even for a game programmer it would be a good idea to know a little bit about everything.
     
    rivstyx likes this.
  21. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    4,865
    I think that there is some hyperbole creeping in: you interviewed for hundreds of positions, presumably seeing 5x that number of candiates or more, and you have NEVER met a developer who specialised only in C#. You must be a very lucky person! Or maybe it is some survivor bias creeping in, if you always filtered out specialist resumes because you prefer full stack developers, then you only ever see the full stack folks.

    Most of all I'm not sure you have hired for many entry level/graduate positions, because the characteristics you describe really don't seem to fit the typical profiles. For anything mid level and beyond I wholeheartedly agree with you, but thats not what this thread is about.

    And seeing as you seem to love so much the call to authority: I work at a big tech firm where I am the exec sponsor for graduate intake programs across several countries. I don't get to interview so many of the candidates, but I do set the direction and talk regularly with the people who do. I like to think hiring grads is something I know a little about.

    ---

    PS I hope the tone here is okay, it is meant to be tongue in cheek, but it is hard to convey that in text.
     
    Last edited: Aug 5, 2020
  22. rivstyx

    rivstyx

    Joined:
    Sep 6, 2018
    Posts:
    33
    No hyperbole. I worked for a major startup in the travel industry during the dotcom bubble. It was part of my position to recruit and hire many of the devs that worked there. I interviewed and hired dozens in that time alone. I have also interviewed, hired and managed up to thirty direct reports. It is not a call to authority in so much as it is a call to experience on both sides of the table.

    Apparently, if you cannot address the facts the next best thing is to slander the one providing them. Please address the points and do not make ad hominem arguments about my experience.
     
  23. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    2,493
    The pissing match is weird.

    I know a guy who's solely embedded. He hasn't touched anything as high as C# in years (for his job) and I wouldn't be surprised if he never did again. He's not full stack and he doesn't need it to make plenty of money.

    A project I worked on in 2018-2019 had one guy doing the device integration stuff in C++, other guys (including me occasionally) doing backend stuff in C#, and a couple guys doing front-end stuff in React. No one was truly full-stack, and the project was running fine (hmm...let me say, the issues the project had were completely unrelated to where people were in the stack). People could definitely have used more experience dealing with customers (presentations and demos focused too much on tech stuff there was no reason for the customer to care about), but that wasn't related to the stack. In any case, no one was really full-stack and it was fine.

    For most of the stuff I've worked on outside of that, it really depends on how you define "full stack." If you just mean "backend and frontend," then sure. If you're getting into stuff like servers and web dev, I've only gotten into that in the past few months because of this whole situation - in most cases it wasn't necessary.

    I imagine the type and size of the product you're building (and in general, that your company builds) will determine how "full stack" you ought to be. There's a huge, huge amount of variability in what programming "means" for a job.

    Edit: interesting post on "full stack"
     
  24. rivstyx

    rivstyx

    Joined:
    Sep 6, 2018
    Posts:
    33
    I mainly refer to backend and front end in my examples. All I am saying is that knowing where you live in the enterprise is key. No matter what the enterprise is. You do not have to be a master of all elements of the stack but you should know what they are and have some basic experience with them. You cannot be a specialist in a field without some knowledge of other parts of your field. Even in Unity development you cannot just know about C# if you want to make a game. Especially, once you get into intensive multiplayer games that cross many tiers.

    I can honestly say I have never received a CV or Resume like the following...
    Name: Joe SeaSharp
    Title: C# Specialist
    Skills: C#
    Work Experience: none
    Education: BS in C# from C# University

    :)
     
    Last edited: Aug 5, 2020
  25. rivstyx

    rivstyx

    Joined:
    Sep 6, 2018
    Posts:
    33
    Also, to answer your link. Testing, requirements and design are all part of what is known as an SDLC(Software or System Development Lifecycle) A full stack developer may be only part of that lifecycle but they may cross over into Unit Testing(definitely) and perhaps help building out other test plans. However they are not responsible for everything most of the time. You have other roles like Architects, Leads, BA/SA, Stakeholders, QA etc. that handle other aspects of the SDLC.

    In a small shop this may be one person but overall that is not true.

    The SDLC whether agile, iterative, TDD etc. addresses the following 7 stages of development...
    Planning
    Analysis
    Design
    Development
    Testing
    Implementation
    Maintenance
     
  26. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    4,865
    It was supposed to be a light hearted jab: it is a little suprising that you have NEVER seen a candidate that you would classify as a specialist (of course being a C# specialist doesn't imply someone has never seen a database, javascript file or unix system).

    It is also not an ad hominen attack to infer from your statements that that you may not have had much experience hiring at the entry level (you are welcome to refute that if I am incorrect). This doen't mean I think you don't have deep experience. There are plenty of companies that don't hire grads.

    Although its nice for a student to get exposure to lots of different technology for their own benefit, from a hiring perspective I don't think it is a key factor.

    I'll leave it at this, my recommendation to the OP: do your degree, work hard, find and pursue topics you like, create some side projects or contribute to open source projects whilst you study. You will be a compelling candidate, regardless of the exact subjects you studied.
     
    Last edited: Aug 5, 2020
  27. rivstyx

    rivstyx

    Joined:
    Sep 6, 2018
    Posts:
    33
    How many people have you hired Johnny? How many direct reports? Just curious.

    I never said I did not see a specialist in a field. I just said I never saw anyone with only C# on their resume and nothing else. Even a neurosurgeon needs to understand general practice and anatomy. They don't just go to school to be a specialist. That is what you don't seem to understand. You cannot be a specialist without some advanced knowledge of the rest of your field. I guess you can, just not a very good one :) We all prefer something. Me personally, I enjoy the middle tier but I still need to work in the rest.

    I have hired all skill levels across many different fields in my career. From devs/interns without a full degree all the way through Managers and Directors of Application Development. They may have specialized in one thing but they have understood the rest on some level. Except, maybe those DBAs. They are all elitist :)

    My advice also stays the same. Just like Johnny says, get your degree. Trust me, you will get 4 years of a lot more than just C#. You will learn how to program and not just what language to program in. Because, no matter what the language the concepts pretty much stay the same.
     
  28. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,156
    Just a warning from experience - unity is nice, c# is nice, but it gave me a very misleading impression about what the average c# centric job is like. Once it gets into .net / .net core, iis, windows servers, etc it is very different from every other job I've had and personally I hated working in that environment.
     
    rivstyx and ikazrima like this.
  29. rivstyx

    rivstyx

    Joined:
    Sep 6, 2018
    Posts:
    33
    Absolutely, if you want to be a professional C# developer you will have to take projects that are not necessarily Unity based. The pay is much better but the skillset demands are much more diverse. Also, Unity does not enforce best practices in any way and so coding practices that pass in Unity would never pass a code review in an enterprise level project. I try to make sure my Unity coding style does not transpose to my development style in corporate jobs. I am much more S.O.L.I.D. based in the corporate world.
     
unityunity