The self-hating web developer
joequery.me
The self-hating web developer
1–10 of 214 posts
Re: The self-hating web developer
#2Two things have helped for me - one is to have a useful project in mind for the thing you are learning, so you have a payoff at the end. The other is digging into the details of the thing to really understand the subject - and make a mental note that you're implicitly committing to struggle and frustration in exchange for the reward of knowledge. If you aren't willing to struggle you won't get very far in any subject. It's great to have the initial interest/spark, but perseverance is what really changes you as a programmer.
Re: The self-hating web developer
#3Web development is hard for all the wrong reasons. There are so many layers of bad, half-broken stuff to deal with, encapsulated in new, half-broken stuff. Worse, it has fads. Sign: "It has been [0] days since the last new Javascript framework." Web developers must run very hard to stay in the same place.
It's hard to get excited about this, when in the end, the result is usually a web page which could have been displayed faster in HTML 3.2.
Re: The self-hating web developer
#4Re: The self-hating web developer
#5That being said, there are different tiers of software development (including web development) in general. Most developers are actually abysmal at architecting good software. This might be down to a number of things - time pressure, lack of experience, lack of skill, apathy, "life happens" etc.
Anyway my point is, abysmal software is everywhere. Thankfully, customers don't mind. If your software is important, you'll write tests.
Re: The self-hating web developer
#6* At least one server side language
* Probably a server side framework
* HTML
* CSS
* Maybe a preprocessor language like SASS or CoffeeScript
* SQL
* HTTP
* Probably a SCM like Git
* At least one server, which means the server software itself, like Apache or Nginx, the server for your language like phusion passenger, probably an OS that you're not familiar with
* a whole slew of build tools and the like relevant to whatever ecosystem you're in
And more shit I'm not thinking about (oh, all about images types and compression). And that's just basic stuff, not even considering setting up a database server or, heaven forbid, a cluster. Or anythging like redis, or a queuing system or redundant hardware.
That's not nearly a comprehensive list, but I think my point is made.
It's true that generally web dev is less mathy. I personally scratch that itch with graphics and game programming, but web dev is a hairy beast, so don't let anyone get you down about it.
Re: The self-hating web developer
#7That's sad. Web development is hard for all the wrong reasons. There are so many layers of bad, half-broken stuff to deal with, encapsulated in new, half-broken stuff. Worse, it has fads. Sign: "It has been [0] days since the last new Javascript framework." Web developers must run very hard to stay in the same place. It's hard to get excited about this, when in the end, the result is usually a web page which could ha…
Re: The self-hating web developer
#8There are both good and bad web developers, just as there are software engineers.
If one wants to learn more about software engineering then of course there is nothing wrong with that, however it strikes me as odd to pursue it solely for the "higher prestige" that it carries amongst the programming forums.
Re: The self-hating web developer
#9I know several people who started programming only to get twisted and turned around by experienced developers saying, "Don't learn PHP" then "Rails is a joke and doesn't scale well." I talk to them a week later, and they're trying to build a simple web app in functional Haskell, and their environment is all messed up because they are using a zsh configuration they don't understand and github is telling them to put stuff in their .bashrc.
Especially when you're getting started, it just doesn't matter. Open up a text editor - it doesn't matter if it's vim or emacs or notepad, and start building something - it doesn't matter if it's PHP or Node.JS or Rails or LISP. Just do stuff. Then take on the next challenge, and grow from there. You don't start out hacking the Linux kernel.
Momentum is the thing that truly matters. Learning and creating is like a conveyor belt - if you stop the conveyor belt to move the things around and make sure that you're doing everything right, progress stops, and you're probably going to do more harm than good. Keep the conveyor belt running at all costs.
Discouraging that momentum because the language isn't "good enough" is like telling someone who is learning to ride a bike that they should jump on a motorcycle. No one would question that motorcycles are better than bicycles, but you probably don't want to start on one.
My general rule of thumb is that if you don't know why something is better yet, you should generally avoid using it. If you don't know how to write CSS, you don't need LESS or SASS or Gulp or Bower or whatever. Once you write a project in CSS, the need for SASS becomes obvious, and you appreciate it.
Of the several programmers I know, I don't know any who started out writing machine code. Most started out writing PHP (some Java), but they got the ball rolling and learned quickly.