Live data from Hacker News

Learn Web Development: From Novice to Employable

howtocode.io

31–35 of 35 posts

Re: Learn Web Development: From Novice to Employable

#31

What I'd like would be a 'From Novice to Employable using Clojure' I've heard some nice things about Ruby, but I think I'm too much of a spoiled noob in my exposure to Clojure. I'd even take a class if it was Scala or Erlang or something along those lines. Sometimes I hate being a spoiled noob, because I'd really like a job programming, but I don't want to pause learning Clojure unless I'm learning some language that…

Honestly, and I say this as a big fan of Scala and Clojure: fixation on one programming language and a lack of interest in picking up the widely-used languages tools of the trade because of self-"spoiling" would be a reason for me not to hire a candidate. Self-limitation is a huge red flag: I hire horizontal and vertical polyglots[1] because they're going to have a wider base of experiences to draw from. Most monoglot dev shops are going to trend towards the enterprise--because it's easier to hire, to bring new people on-board--and towards .NET and "enterprise Java" (as distinct from "smart Java", which has a pretty large intersection with the Scala, Clojure, etc. communities).

[1] - Horizontal polyglottism is being comfortable in multiple similar environments--knowing, say, both Ruby and Python exposes you to multiple paths to the same goal and can help you tease out the benefits and drawbacks to different approaches. And, probably even more importantly, vertical polyglottism involves being comfortable moving up and down the abstraction ladder. This is a big part of why I like Clojure, sure, but I know it better because I know Java and through Java the JVM, and I know the JVM better because I know C++. I know C++ better because I know C, and so forth. Learning the entire stack makes you better--and it removes "spoiled" from your vocabulary.

Re: Learn Web Development: From Novice to Employable

#32

What I'd like would be a 'From Novice to Employable using Clojure' I've heard some nice things about Ruby, but I think I'm too much of a spoiled noob in my exposure to Clojure. I'd even take a class if it was Scala or Erlang or something along those lines. Sometimes I hate being a spoiled noob, because I'd really like a job programming, but I don't want to pause learning Clojure unless I'm learning some language that…

While I think it's clear Clojure and other functional languages are stronger overall than Ruby, Python, JS, and the like, the truth is that web development in the wild ends up being a lot more about choice of libraries than choice of language.

Clojure is getting there, but its web libraries are still immature compared to what you'll find in Rails, and I generally can't justify spending the extra time that implies.

For apis and services, on the other hand, Clojure is fantastic. My preferred architecture these days is Rails for front-end, lightweight backend, and various utility tasks, and a Clojure api for computational tasks, parallelism, and heavy lifting.

My point is that sometimes the best tool for the job isn't necessarily the best all-around tool. It's fine to use the stronger technology whenever you can justify it (why wouldn't you?), but if you put more focus on technology choice than product, you may end up with lots of beautifully engineered projects that never get finished.

Re: Learn Web Development: From Novice to Employable

#33
post #31

What I'd like would be a 'From Novice to Employable using Clojure' I've heard some nice things about Ruby, but I think I'm too much of a spoiled noob in my exposure to Clojure. I'd even take a class if it was Scala or Erlang or something along those lines. Sometimes I hate being a spoiled noob, because I'd really like a job programming, but I don't want to pause learning Clojure unless I'm learning some language that…

Honestly, and I say this as a big fan of Scala and Clojure: fixation on one programming language and a lack of interest in picking up the widely-used languages tools of the trade because of self-"spoiling" would be a reason for me not to hire a candidate. Self-limitation is a huge red flag: I hire horizontal and vertical polyglots[1] because they're going to have a wider base of experiences to draw from. Most monoglo…

I suppose my position is an outgrowth of my very first attempt to build an application. Every component that I took up and learned the 'right way' to build an application, everywhere I looked, and everything I read, was very counter to the way that the whole system was oriented. After banging my head for a while trying to just get things to work while still doing things 'the right way' I realized that the tools I was using were never designed for use in an optimal way. You don't need an optimal way when you're idea of producing something is simply to ramp up how many resources you have on a project. My personal project could never get to where it needed to be without superior tools. The fact that I've not given up on my own project is precisely the reason I have little motivation to go back to things like VB.net.

I'm not one who got on the programming ladder in College or Highschool, I don't necessarily have all the time or resources to become the grand horizontal polyglot I'd love to have the resources to become. The whole reason I choose Clojure is because I found myself at almost 30 years and two years into a project that I'd been squeezing out of any free-time I could get frustrated that the best advice I could get with all the presently 'accessible' 'entry-level' programming tools were constantly in contradiction with each other and obviously built far more with a large corporation in mind than for any lone, starting from scratch, developer wanna-be like myself, they gave lip service to it, but it wasn't there. I finally got stuff working and it'd break and the only way I could get the thing working was to delve into the bowels of visual studio and a bulk of the .net framework. I read some PG and saw the light.

So I started from scratch, did my homework and choose Clojure, that forced me down some other paths, none of which I regret, learning enough of Debian to be dangerous, plenty of time banging my head against lots of obstacles. But in all honesty they weren't really anything less accessible than the whole .NET jungle was. And when it all started to click I didn't feel like I was just stumbling into getting something to work. I actually felt like I had some idea of what was going on. I know I lack a lot. And if my saying that I'm somewhat adverse to learning CERTAIN languages alienates me from some then I suppose I'm okay with that as well. Because when I ran into problems with my old attempt at doing things 'right' with .NET and VB I eventually either restarted my project or just serendipitously got the thing working. Now when I trouble shoot my Clojure projects I know how to eventually find the answer regardless of whether or not I can get someone to help me with it.

I really do want to understand the fundamentals better. Don't get me wrong. I'd love to be able to have the entire stack in my mind, heck I'd love to get down to assembly at some point. But my top priority, the whole reason I choose Clojure as my real starting point into programming is because I know what I want to build and I feel an urgency to get it built THAT is the only reason I'm, at present, limiting what I'm learning. I only have so much brain bandwidth and only so much time. My way of striking while the iron is hot is to stay, at present, focused on what I feel, is the right tool.

The reason I'd love a job in this should be obvious, if I can be working on Clojure (or Scala, or Erlang, or F# etc.) programming on the job then that would boost my capacity on my own personal project which is, after all, my whole reason for obtaining a passion in programming.

I don't have a lack of interest in learning other languages, with the caveat that I want to reinforce the whole driving force behind my becoming a hacker.

Re: Learn Web Development: From Novice to Employable

#34

What I'd like would be a 'From Novice to Employable using Clojure' I've heard some nice things about Ruby, but I think I'm too much of a spoiled noob in my exposure to Clojure. I'd even take a class if it was Scala or Erlang or something along those lines. Sometimes I hate being a spoiled noob, because I'd really like a job programming, but I don't want to pause learning Clojure unless I'm learning some language that…

While I think it's clear Clojure and other functional languages are stronger overall than Ruby, Python, JS, and the like, the truth is that web development in the wild ends up being a lot more about choice of libraries than choice of language. Clojure is getting there, but its web libraries are still immature compared to what you'll find in Rails, and I generally can't justify spending the extra time that implies. Fo…

It's funny you mention this because as I've moved forward in my own personal project, both in learning and in actual coding, whenever I've come upon a need the Clojure community seems to be arriving at filling that need in a sufficient way right as I come to the point that I need it. Granted my own personal project is not equivalent to anything I'm aware of in any corporate scene, but it's been uncanny how many times this has happened. Things like Pedestal and Datomic and Clojurescript or core.logic it's almost as if they were birthed at just the right times to be maturing at just the right rate for me to be adopting them and learning them right as they 'ripen.'

Re: Learn Web Development: From Novice to Employable

#35
post #31

Earlier quoted context omitted.

Honestly, and I say this as a big fan of Scala and Clojure: fixation on one programming language and a lack of interest in picking up the widely-used languages tools of the trade because of self-"spoiling" would be a reason for me not to hire a candidate. Self-limitation is a huge red flag: I hire horizontal and vertical polyglots[1] because they're going to have a wider base of experiences to draw from. Most monoglo…

I suppose my position is an outgrowth of my very first attempt to build an application. Every component that I took up and learned the 'right way' to build an application, everywhere I looked, and everything I read, was very counter to the way that the whole system was oriented. After banging my head for a while trying to just get things to work while still doing things 'the right way' I realized that the tools I was…

An awesome path to hear about. Hope you find that job.

Yeah, as a "polyglot", I find it very questionable that being a polyglot is such a good investment of one's personal life. That is, there's other things one could learn instead; diverse teams will have diverse levels of polyglotism; and you can piggyback vicariously on the explanations of others who have learned lessons/lore from other programming language communities.

People I don't trust (like managers) probably think I'm a happy polyglot. But I dislike having learned most tools I know; the process was boring and there's more interesting things in this universe than learning how to deal with the b0rkenesses of some tool someone made. A lot of tools explicitly serve hiring managers (who want to maximize labor pool) rather than help liberate the imaginations of practitioners.

Post reply on HN