13 ms·
Front End Development Topics to Learn in 2019
- k_bx 8y agoElm
- hazza1 8y ago> where I can either get paid to take it or there’s a clear market for the skill Maybe not Elm then
- winrid 8y agoMaybe in another year.
- mrdoops 8y agoElm will be amazing when it doesn't have to compile to Javascript.
- k_bx 8y agoEven Javascript has to compile to Javascript. Elm's TodoMVC, after compilation, takes less JS code than the React version. What else is needed? :)
- juddlyon 8y agoThis is a solid list, but front end dev has gotten a bit absurd. I feel like I need to install 86,000 dependencies via NPM to do something that server-side frameworks already figured out. I was following a simple Vue/Vuex tutorial the other day and my node_modules directory was 200MB+. Use yarn or npm to install XYZ.... What's the difference? Why do I have to google this as step 0? Why do you assume I know the intricacies of Webpack? Is this tutorial for Webpack 4 or Webpack 3? I'm exaggerating a bit but honestly, I get the same feeling of rage that I used to get trying to understand the box model during the IE 6 era.
- taesu 8y agonpm hell, I assume it's still a thing?
- Zelphyr 8y agoOh, yeah, it is. I used to love npm and then didn’t use it for several years. I’ve gone back to it lately and find myself screaming “what have you people done?!” on a regular basis now. And while we’re on the subject of package managers; do we really need so many? I know npm is terrible but it seems like everyone has decided to create their own now. I swear to god I had to use a package manager to install a package manager the other day.
- acemarke 8y agoThere's only two primary package managers for Javascript that are in common use. (For point of comparison, Java and Python are in a similar situation: Maven and Gradle, pip / pipenv / poetry / pip-tools, etc.) NPM is the package manager built by the NPM company. It's included with Node. Primary selling points: it's "official", and NPM has included the package auditing tech they purchased. Yarn was created by a team from Facebook, at a time when NPM (v2/v3) was known for being slow. Currently developed by a somewhat broader group of contributors. Primary selling points: more consistent installation behavior, "offline mirror" installations. Both tools install packages from the same servers run by the NPM company. The speeds are relatively similar these days, but that's at least partly because the competition pushed NPM to improve. And yes, Yarn is often installed via NPM, although you can install it other ways too. Both teams are working on solutions to the `node_modules` size issue. NPM is building a new package manager called "Tink" from scratch. Yarn has come up with a technique dubbed "Plug 'n Play". Both look potentially interesting. There's other package managers out there, but they're rarely used. For example, PNPM uses symlinks in each project to a global package cache, rather than installing a separate copy of a package for each project. I happen to favor Yarn myself, largely because the offline mirror feature makes it easy to have consistent, fast installs in CI builds and across platforms [0]. [0] https://blog.isquaredsoftware.com/2017/07/practical-redux-part-9-managing-dependencies/#managing-dependency-packages-for-offline-installation https://blog.isquaredsoftware.com/2017/07/practical-redux-pa...
- danr4 8y agoMy top one is ReasonML.
- cageface 8y agoI would love to see ReasonML take off too but I think it's unlikely. Typescript is pretty good and an easier conceptual leap for most developers. I think it takes a company the size of Apple forcing a language on its developers to bring an ML into the mainstream. And although I consider Swift to be a kind of ML it's made a lot of concessions to more familiar language designs.
- commandlinefan 8y agoFive things I will learn just in time for them to become obsolete.
- more-entropy 8y agoDoes anyone have something for backend or even better system wide? What correlates with that "3 mos" concept.
- Dowwie 8y agoThis article makes it sound like the grid layouts of the CSS Frameworks have a legitimate reason for updating. Is this a matter of swapping out grids?
- Jeaye 8y agoHas anyone realized the wheels on the treadmill are spinning toward the carrot? Shouldn't be tough to keep up.
- jenscow 8y agoah.. perhaps the aim is for the developer to escape the carrot.
- james_s_tayler 8y agoedit: you have much to learn young grasshopper
- karmakaze 8y agoYeah, first thing I noticed. Then I was thinking, "How hard would that be?" to run backwards on a treadmill at any speed.
- sambroner 8y agoAre people still using the responsive design? I feel like people stopped addressing that issue with new technologies?
- dolguldur 8y agoOf course they are. It’s just not a buzzword anymore but considered normal.
- DanielBMarkham 8y agoThis is a good list. Also web development has went down some insane rathole that it needs to eventually get out of. Let's look at it. Typescript: Javascript, only with strong typing from OO you love React: Use Javascript as if it were OO with IOC Vue: Finally the web component architecture that the web itself is coming up with in another few years, only here today CSS Grid: Miss tables yet? GraphQL: Install your own generic data layer, because you need a generic data layer, right? Don't get me wrong. These are all great techs. I use them daily and plan on learning more about them over the coming year. But I can't get past the feeling that web development is simply suffering from too many dang developers. Come back in 10-20 years and we'll end up having another C++ that's more of a CF than C++ is. I sure hope it doesn't turn out like that. Right now we've got a thousand ever-changing solutions looking for a problem.
- aphextron 8y ago>CSS Grid: Miss tables yet? It literally makes me feel like I'm cheating or something. What used to be an hour of fiddling around with floats and percentages is now two seconds of declaring a grid layout. Thank god for the evergreen browser revolution.
- DanielBMarkham 8y agoHappy path on all of this tech rocks. It's quite impressive.
- marcosdumay 8y agoBesides Internet Explorer, what failure mode does CSS grid have?
- doubletgl 8y ago>Right now we've got a thousand ever-changing solutions looking for a problem. Wow you're right. And a lot of devs can't resist that temptation.
- lucidone 8y agoI've been away from front end for about half a year while doing Node work on the backend. It's intimidating. There are too many choices, which correspond to too many libraries to learn, which are often half baked since the ecosystem is so fragmented. Everything is a special snowflake with its own idiosyncrasies and way of doing things.
- albertgoeswoof 8y agoMost of those idiosyncrasies and libraries are really simple and not that deep. Read the source code of your dependencies and it will make a lot more sense.
- igotsideas 8y agoOut of curiosity, are most companies/devs disregarding angular or is it slowly picking up?
- jordache 8y ago>slowly picking up? You seem to assert Angular is growing from a position of weakness? It's a very popular framework. Very structured, and with the introduction of the new Ivy rendering engine, I think it will get a bump in popularity.
- jcroll 8y agoIt should be mentioned on this list but because Angular has positioned itself as the enterprise solution to web frontend it scares away novices. Great solution tho, I work with it fulltime
- mcescalante 8y agoI'll second this. It's not very friendly to beginners, and many people dislike "batteries included" frameworks, which Angular tends to be more than React or Vue does. I use it at work in an Enterprise setting and it's worked well for us thus far and have seen great improvements between Angular 2 and 7 (latest as of writing).
- hanoz 8y ago2019 may or may not be the year, but I'm sure it's coming - this inexplicably expansive land grab of web application functionality by client-side technologies is going to peak, and things will start to swing back towards the server side.
- buchanaf 8y agoVery unlikely. You'll see more of a merger where client-side solutions are leveraged in very specific ways to address web requirements -- similar to next.js and gatsby.js.
- cantthinkofone 8y agoThis seems plausible. There's usually a proliferation then a consolidation phase with any period of innovation, where people invent all sorts of ways of doing things and then gradually figure out what works best together. Why the client-side has seen such an era of fecundity in recent years is beyond me. Perhaps because there was a real problem with leaving the job to jquery. Regardless, eventually there's just going to be too many available solutions but not enough solidified and proven methods where everything you need has been packaged together neatly because trial and error and years of iteration have pulled the optimal toolchains together and left the others by the wayside. The way everything client oriented is just sort of floating around with no real scheme to it creates a lot of possibilities but at the same time much confusion and exhaustion. Eventually, (hopefully) there will come the standards.
- Etheryte 8y ago> CSS grid > If you’re still using heavy-weight grid frameworks from UI toolkits like Bootstrap or Foundation, you are falling behind. This is a pretty sensationalist way to word this and honestly an absurd statement as a whole. If you have a public-facing site, ignoring everything that isn't up-to-date is a luxury you can't afford and blunt statements like these show ignorance in that regard.
- cageface 8y agoCSS grid is supported in all modern browsers. Depending on your audience, there is a very good chance you can use it in favor of older and much less powerful and pleasant grid layout tools.
- Etheryte 8y agoThat's the point exactly, when you're building a public facing website, depending on your client audience it's very likely that you're not building only for modern browsers. Heck, the same holds for a large part of non-public projects as well.
- technojunkie 8y agoProgressive Enhancement takes care of an acceptable fallback for browsers that don't support the standard.
- maigret 8y agoIn that case, that’s what is called “graceful degradation”, progressive enhancement goes the other way around (code for older browsers, then provide cool features for newer browsers). Like desktop first vs mobile first.
- koboll 8y agoAccording to CanIUse, it's supported in browsers used by 88% of users in the United States. Which means sites will fail to render properly in 12% of browsers. Developing for a b2b or enterprise product? That percentage is going to be lower. Developing for users outside advanced industrial countries? Lower. And it's not like you can polyfill it or use a fallback -- CSS grid is a completely new way of building layouts that isn't amendable to automatic fallbacks, so you literally have to build an entirely different parallel way to do the same thing if you want those 12% to have the same experience. At that point... why bother using CSS grid at all? The simple and sad fact is that until IE 10/11 fall totally out of use, grid is simply not worth learning for many projects.
- no_de_js 8y agoAnd yet JavaScript is fucking awful.
- vertline3 8y agoUhm I... I just think it's a bit like quicksand. In a few years, things will have shifted somewhere else. A percentage of our time should be on staying current, anyone have a good strategy?
- digitalzombie 8y ago> anyone have a good strategy? I left the industry for data science. Went back to school and fall in love with statistic. Going to try to get a biostat job. I'm trying to do side projects web app and not give a damn about the flavor flav of the month. I don't know if that's a good strategy.. it's basically peacing out. I also move most of my tech stack to plain old stuff like a simple mvc framework and no frontend rendering.
- vertline3 8y agoThis peacing out is sort of exactly what I've been considering. Focusing more on algorithms or big picture things. Thanks for your perspective.
- pascalxus 8y agoIt's pretty difficult to keep up with all the new frameworks these days. That's why I created a faster way of learning. I noticed that everytime I wanted to learn a new framework or new library, I was always creating examples and modifying them to learn how they worked. So, I created a Tutorial/Example code website that combines tutorials with real working examples: https://codeorc.com https://codeorc.com By not having to set up every single example anew, I hope this saves people some time in allowing them to learn things quicker.
- ollerac 8y agoI've taught people coding a few times and I always start with a game, but it's hard keeping it simple enough for them to understand. This tutorial looks like a great place to start. Thanks!
- gammateam 8y agoI need a site that tells me that something as simple as npm install would really be sudo CXX=clang++ npm install --unsafe-perm with some explanation of what really went wrong alongside the disclaimer about the negatives of using anything unsafe-perm every framework or language has developer tool nuances like that which waste devs hours.
- gammateam 8y agoVue, Angular function similarly with prefixed/namespaced directives and insertion techniques v-if ng-if This is more of a matter of untechnical recruiters, resume crawling bots, and technical interviewers understanding that these are the same skill sets and concepts to make the labor market slightly more efficient. All the company's devs are going to be using the resource manual and stackoverflow either way, and most of their time will be messing around with the dev tools than figuring out the most academically efficient solution within the allotted time.
- austincheney 8y agoMany comments here are concerned with the ever changing trends, downloads, and such. Frontend technologies really don’t change that fast. If being a stronger frontend developer is a priority focus on the basics. I have received some favorable feedback about this list that requires no additional downloads https://github.com/prettydiff/wisdom/blob/master/Web_Education.md https://github.com/prettydiff/wisdom/blob/master/Web_Educati...
- ww520 8y agoInstead of techs to learn, how about resolute to build small front end apps, and along the way, learn to use whatever techs to make them happened. BTW, GraphQL is more of a backend thing. The frontend part is simple.
- MilanoCookie 8y agoRelated to this topic: What are the minimum technologies needed to get a solid front-end stack, with a nice balance between modern features without framework/library/build tool/transpiling hell? For example, I don’t want to learn TypeScript when vanilla JavaScript will suffice. I’m wary of picking up the “hot” new frameworks because they haven’t stood the test of time and may get deprecated/irrelevant. Basically, I want to have a flexible and minimalist stack, but also with a good balance of features (i.e. not just a static HTML site). Any ideas?
- jypepin 8y agoThe answer can be a bit different depending on what you already know, but here is a list of a few things things I work with: - Rails or Express for the backend (depending on needs, I'll usually chose Rails over Express 90% of the time). - Vanilla JS if you only need a few simple things - Vuejs if you need a bit more complex client-side logic, but still easy setup (Vue can be installed from a <script> tag) - React if you need more complex UI, but it will make your client bundles more complex (while importing Vue as a script tag is ok in prod per their doc, React's docs recommend against that). Another thing, if you already know React and you want something quick if Next.js. It's still a full React framework, so it comes with a pretty "complete" bundle that you might want to avoid, but is really plug and play and requires 0 config. You'll be able to very (very, very) quickly start building pages, etc. with server-side rendering and it works very well (I'm using it on a fairly sizeable project for a client and I'm happy with it so far). And in the case where you want to end up with just a static package that you can host on a CDN, there is an option for that. You loose server-side rendering, but that allows you to serve you website as a static website.
- MilanoCookie 8y agoThanks, I’m leaning towards React and Vue
- root_axis 8y agoI'd strongly urge you to reconsider using TypeScript. At this point there isn't much difference between TypeScript and ES6 (besides the types) and types are a gigantic maintainability booster and significantly reduces bugs. The TypeScript language server also provides high quality autocomplete and jump-to-definition functionality in your editor of choice. It's very helpful to be able to enumerate through object methods and properties for 3rd party libraries as well as your own application code.
- azundo 8y agoInteresting that Graphql makes the list - any frontend devs without considerable backend experience out there that have adopted it? Would be interested in your perspective on it vs rest or rpc.
- doubletgl 8y agoPlayed around with it. I do see the appeal and advantage if you need to save requests and fetch lots of nested data. Haven't had an actual use case yet (as in paid work). My fear would be that companies who'd be better off with rest (because their data and entities are relatively flat and simple) adopt it anyway. But that's my fear about a lot of libraries :D
- leowoo91 8y agoFullstack dev here, I'm still happy with jquery.
- randomsearch 8y agoI think one problem with jquery is that it tightly couples your classes and IDs, and your layout, which your logic. Simple example: your new dev changes layout or an ID or classname, and some code somewhere that relied on it via jquery breaks.
- yakshaving_jgt 8y agoYeah. Solve that with tests or a compiler. Not using jQuery doesn’t suddenly make that problem go away.
- randomsearch 8y agoI’m fairly new to web dev and using Vue. Web dev is a complete mess, it’s true. I also think the direction of travel is good from what I’ve seen, we’re making progress in improving it. For example, introducing types, getting away from hacks like bootstrap etc. What I do find infuriating is that it seems most of the problems are not new and already well solved. Ultimately it looks like web dev is going to be quite similar to Android/iOS/Java Applet dev, which themselves are not particularly innovative (XML layout, MVC-variant style). Package management has been done a gazillion times but we have yet another tool, etc. Anyone understand exactly how we got here? I’d also be interested if more experienced people have a good idea what the endgame is, where this is all headed.
- GordonS 8y ago> hacks like bootstrap Do you mean Twitter Bootstrap, the CSS framework? I've never considered it a 'hack'?
- randomsearch 8y agoWell, I think it's a hack in that it's kinda providing functionality you need that isn't baked in, by making some opinionated decisions and then encoding them in fragments of class names (as one example). That feels like a (good) hack to me.
- glenrivard 8y agoHe misses the front end technology with the most momentum right now which is Flutter
- luord 8y agoThe top one should always be on top is "keep up with standard JS", it's rapidly approaching what could be considered a sane standard library. Once the specification for web components is finished, standard JavaScript plus Babel (and polyfills) would be all that's needed to build 95% of web apps.