DEV Community

Discussion on: A laundry list of things I never heard of from bootcamp

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

What's "fundamental" to a coding gig really depends on the gig. It's good to know algorithms, patterns, and data structures in a general, language-agnostic sense, and be capable of implementing them all in your language of choice. Big-O notation is pretty essential to that, anyhow. (Honestly, if your bootcamp didn't teach that much, they basically ripped you off.)

As to your programming paradigms (functional, object-oriented, etc.), that depends on your language(s) and platform(s). If you're working almost exclusively in C and C++, functional programming probably isn't going to matter. I always recommend developers to know at least ONE major paradigm very well, but which paradigm depends on what you're doing.

You should be familiar with VCS, especially Git, but I wouldn't consider any particular implementation to be a "must-have". I've seen organizations use GitHub, GitLab, Atlassian, Launchpad, Phabricator, or any of a dozen other VCS solutions. It's better to know the underlying concepts, so you can quickly learn whatever solution the organization is using. (It doesn't hurt to be familiar with Git alternatives, like Mercurial and Bazaar, while you're at it.)

Methodologies are, again, something that varies from one organization to the next. Testing is an essential skill, but don't assume it will take the form of TDD or Unit Testing; those are just two possible approaches, and they don't work for everything. Learn to test in the general sense, and you'll be able to adapt to whatever specific system is needed. The same goes for task management and style guides: get used to working with issues and having a consistent style, but be prepared to adapt to whatever specific system your future employer uses.

I can't speak to Javascript-specific "must haves," but I do feel I should point out that JS is an oversaturated market, characteristic of the fad-chasing our industry is so prone to. If you want to work with Javascript, by all means, seek to master it! Just don't put all your eggs in one basket. Learn multiple languages and platforms. Branch out. Explore. Versatility is how one stays employed in this industry; overspecialization is how one becomes obsolete.

On the note of design patterns, pick up Game Programming Patterns by Robert Nystrom (you can read it free on the book's website.)

Collapse
 
stwic profile image
Amir

Javascript isn't a fad. Or it's been a fad for half a decade and it's nowhere near passing.

Collapse
 
codemouse92 profile image
Jason C. McDonald

The language itself isn't. Its use as One Language To Rule Them All most certainly is.

This will explain better what I mean by "fad":

Thread Thread
 
jenc profile image
Jen Chan

I am seeking to understand it, but I'm not so confident to say I'll master it... I will improve my understanding; I don't know if I will master it by reading all the manuscripts I can find on it ("Secrets of the JS Ninja", "You Don't Know JS", "Eloquent JS")

I know I have to try and do this once and for all before (like some have told me) I throw in the towel for professional dev and admit that I just don't have talent.

But by then, hopefully, I will make better websites :p

Thread Thread
 
jenc profile image
Jen Chan

(sees blockchain)
(sneezes)

Thread Thread
 
codemouse92 profile image
Jason C. McDonald • Edited

Well, mastery comes with practice. You can read plenty, that always helps, but it doesn't stick until you Do Hard Things in the language.

Or to put that another way...you'll learn to build better websites by first building a whole lot of terrible websites. Mistakes are how we learn. If you don't blush slightly at code you wrote two years prior, you're not growing.

Mastery is also relative. In one sense, I can be considered to have "mastered" C++ and Python, but I will always have more to learn. It's taken me six years to get this far in C++, and nine in Python.

Collapse
 
jenc profile image
Jen Chan

It was good as a survey of the dev ecosystem in 2016. This was the rise of React vs Angular. They taught git, but I knew it already. They didn't mention git workflows though.

I didn't realize how important testing was til much later. It's still something I have to learn, and probably will result in me thinking why I didn't learn it sooner. It's way too easy to break some of the things I've done.
Thank you for the detailed comment!