Last Updated: September 09, 2019
·
1.044K
· jayncoke

Concepts I Learned After I Graduated That Are Vital to My Job

I was thinking about how far I've come since graduating at <a href="http://www.umbc.edu/">UMBC</a> with a degree in <a href="http://www.csee.umbc.edu/programs/undergraduate/computer-science-bs/">Computer Science</a> back in 2006. The CS program has definitely changed a bit since then.</p>

I learned the vital basics of programing for sure. I also had a basic class on database design. Another vital one on the software development cycle. And the primary languages I learned at the time were C and C++.</p>

Once you learn the basics of programming, you should be able to learn new languages going forward (it's a matter of syntax!) But I just realized that I've learned a few more skills while on the job that I feel would benefit a web development curriculum, if such a path should ever come out of my school's CS program:</p>

<ul>
<li><strong>Source Control</strong>: I wouldn't dedicate a whole class to it, but I feel like this should be introduced to the introductory classes these days. I learned <a href="http://subversion.tigris.org/">subversion</a> while on the job, and later <a href="http://git-scm.com/">git</a>. It just makes it way easier to track your project instead of the ol' taking notes and saving multiple versions of your files. And instructors: students can submit projects by submitting pull requests! Source control is just vital to the Internet industry (I have no idea of the other major CS ones).</li>
<li><strong>Agile Methodologies</strong>: I'd definitely recommend a course on introductions to basic <a href="http://en.wikipedia.org/wiki/Agile_software_development">Agile software development</a>. I was subject to learning this while on the job as well when it just started to get momentum in the industry. Every job since then, I've used and still do plenty of Agile practices: from scrum meetings, to pair programming, to velocity tracking. And in the world of startups, the ability to react to unpredictability is essential!</li>
<li><strong>MVC pattern</strong>: Probably wouldn't be a whole course on it, but maybe some time spent on it in the same class you would learn object orient programming maybe? I'm not trying to create the whole curriculum here, but MVC (Model-View-Controller) is pretty much the bread and butter of pretty much many contemporary web applications these days for all the different languages and frameworks.</li>
<li><strong>Test-Driven Development</strong>: This was a recent thing I learned along with Ruby on Rails. Sure, I learned how to create Test Documents in my Software Development Cycle class. But not true <a href="http://en.wikipedia.org/wiki/Test-driven_development">Test-driven development</a>. You will definitely save yourself a LOT of headache if you can discipline yourself to develop following this design.</li>
<li><strong>Intro Web Development</strong>: I guess I just made this as a catch-all. There wasn't any such course at my school when I was attending, but I would have loved to have taken it since I tinkered around with making websites in my free time then. Things this course should include:
<ul>
<li>templating</li>
<li>web server basics (apache, nginx)</li>
<li>browser testing</li>
<li>basic SEO</li>
<li>w3c compliance.</li>
</ul>
</li>
<li><strong>Advanced Web Development</strong>: And then once you've gotten a handle on the basic web development stuff, move onto these things:
<ul>
<li><a href="http://en.wikipedia.org/wiki/Web_API">API development</a></li>
<li><a href="http://en.wikipedia.org/wiki/Representational_state_transfer">REST</a></li>
<li><a href="http://en.wikipedia.org/wiki/Create,_read,_update_and_delete">CRUD</a></li>
<li><a href="http://www.json.org/">JSON notation</a></li>
</ul>
</li>

</ul>

I really love my job as a software engineer at an Internet technology startup. I feel like this is where I want to be for the rest of my career, while still learning new languages, patterns, and technologies. And there is just such a great demand for developers! I would highly advise anyone interested in a career in web development to learn what I've listed above. You are going to be a step above all the rest of the graduates!</p>

And I'm sure I'm missing a few things here or there, so please sound out if you have any ideas!</p>

2 Responses
Add your response

Great post! Technology, especially web technology is one of those subjects that are constantly evolving, and universities are struggling to keep up. By the time a course gets approved it's already out of date. I am studying at the moment and for one course we weren't allowed to use HTML5 or CSS3...I'm sure it comes as no surprise that I haven't been taught anything from your list. I've had to learn all of that in my own time.

over 1 year ago ·

You are totally right about technologies constantly evolving! But I think with lots of web entities going public or being bought up, there are underlying basics central to web development that are tried and true. Tools will be updated and improved, making development even more rapid, but how you use those tools and the concepts behind them remain steadfast.

over 1 year ago ·