On Learning C#

Owen Abbott
3 min readSep 20, 2020

--

I’ve noticed software engineering bootcamp grads always have a background in react/redux/ruby/rails, not just the one I came from. I am also noticing that job postings for these particular fields get more applicants and, presumably, fill relatively quickly, as they disappear quite fast.

We’re assured that the curriculum adjusts according to industry trends. This may be true — there may be more job openings looking for people with backgrounds in these technologies appearing each day than there are for other technologies. But if these job postings are immediately swarmed by an ocean of bootcamp grads, it may be easier to find work with other techs, because job openings looking for other technical backgrounds may sit longer without being filled. Bootcamps in this scenario may be helping employers more than employees. I can’t find numbers on this. It’s just speculation. I’ve also noticed in my cursory, depressing scans of freelance sites like fiverr and upwork, featured react developers are asking for a bit less money. This indicates to me a certain level of saturation. It’s an employer’s market.

The other members of my cohort are posting online about making more projects in react/rails to refine their knowledge of them, but I’ve pivoting towards learning other languages and frameworks. This may bite me in the end. I don’t have a way of knowing. From my current perspective it seems like the best move.

Additionally, I also would like to go into game development as a hobby. The current consensus seems to be that the most accessible engine for independent developers is Unity both in terms of ease-of-use and available assets, and Unity runs on C#. My reasoning is that a making a game is a long-haul project for solo developers, so I’ll be making frequent github commits and if I ever finish I can put a price tag on it, so the time I put into it will technically count as “professional” experience.

All of this said, I am by no means an expert on C# and don’t have a breadth of technical knowledge to write about and am just scratching the surface of it and trying to learn. My current technical thoughts are as follows:

  1. I like how ‘metal’ the phrase ‘static void’ sounds.
  2. I also like how ‘method overload’ sounds.
  3. I do not like ‘method overload’ as a concept, however. Defining the same method over and over with different sets of parameters, to account for situations in which the method is called with different parameters feels very repetitious and I don’t see the point of it yet. It feels repetitious and I don’t see why one wouldn’t rather use optional parameters with conditionals in the body of a method. Maybe as I learn more, I’ll change my mind. Something about optimization, perhaps.
  4. The word ‘double’ to describe a floating point doesn’t particularly feel descriptive. ‘Float’ makes more sense.
  5. Int32? Int16? Int64? what are these numbers and what do they mean? No one knows! (someone probably knows.)
  6. I’m not yet sure what the difference between an out statement and a return statement is.
  7. The formatting conventions are ugly and C# programmers have no style or grace.

--

--

No responses yet