Live data from Hacker News

Web Programming Is Hard

shubharamani.com

161–165 of 165 posts

Re: Web Programming Is Hard

#161
post #149

Earlier quoted context omitted.

You forgot the architecture needed to sustain a development enviornment - the VCS, bug tracking, deployment (ssh? shell scripts? something more modern?), and so on. But that's probably because it's all so obvious.

I've always been a hobby programmer, but over the last few months I've been developing some web sites and trying to bring my skills up 'to the next level'. The things you mentioned- vcs, bug tracking, deployment- are definitely non trivial. Partly because while most programming languages are well documented and have lots of tutorials, the things you mention are almost a black art, something every programmer does a bi…

VCS and bug tracking are not difficult. You can get it all by just installing fossil. If that's not your thing, you can install tortise hg (on Windows) or some other dvcs and get started in next to no time.

Deployment is definetly ugly. There's stuff like pip, fabric, and virtual-env (all on python) which are meant to ease the pain ... but the fact that agile geeks reccomend 3 different frameworks just to make things simpler show how ugly it is. I don't know what the cool kids use for PhP though.

Re: Web Programming Is Hard

#162
post #157

Earlier quoted context omitted.

Embedded is very challenging. But the tools don't change much through the years. With the web, stuff keeps a changin'- like minute by minute.

That's a very simplistic and inaccurate statement.

I hopped on your website, sir (madam ?) and no doubt, you are a rockstar. I'm talking about typical jobs -- typical embedded vs. typical desktop vs. typical web. Yours does not seem like a typical job, nor do you appear to be a typical developer. Most typical desktop/embedded jobs out there do not require keeping up with constantly changing technologies the way typical web jobs do.

Re: Web Programming Is Hard

#163
post #155

Earlier quoted context omitted.

The linux drivers idea is good particularly if you want to learn about communication with embedded system. But there are other approaches too. You'll need to ask yourself how low-level do you want to go. For example: Do you want to work on a system that has an OS, utilities, filesystem, etc such as the ELDK[1]? Or a little more stripped down with only the OS such as FreeRTOS[2], uClinux[3], or uC/OS[4]? Or even lower…

what kind of a career path does a embedded programmer has? what is expected at senior positions in such jobs? how to get a foot into a entry level job? I am not a EE guy. doing a BSCS.

Sorry for taking this long to reply. Lots of errands to do.

An embedded programmer is a catch-all adjective I think. One could be working on very low level programming of microcontrollers (e.g., PIC32, MSP430) and FPGAs [11].

On the other end of the spectrum, you can find embedded programmers working on embedded devices that hosts complete systems with OS, filesystems and utilities such as the ELDK (referred in previous posts). The duties for such programmers include creating device drivers for the specific devices that the product has. I have for example, modified an existing application developed originally for a system with no OS into a Linux application running on a PowerPC board. For example, some of my duties were to modify the original application's absolute FLASH memory references to a method compatible with what the Linux based system offers (hint: I used mmap).

I would guess that someone like yourself with limited exposure to electronics would be guided toward the latter type of jobs. From my limited experience in my local area I believe that this type of jobs offers the best balance. Latter on you can move deeply into low-level development once you have beefed-up your resume if you so desire.

The trick here is to be identified by a competent manager that can match your education and experience to his needs. And you`ll be surprised how little managers need to know, technically speaking, to get a product going which means that you need to sell yourself well.

Senior positions depend heavily into the nature of the company. I find that importance given to hierarchy between employees is proportional to the amount of bureaucracy present. This translates into defined roles, which will need to be created (i.e., company is growing) or the position becomes available (i.e., because of retirement or lay-off). So for example, if you want to become an architect where you actually design a product or part of it; it will be harder in a big company. Smaller companies suffer less from hierarchy and give more chances to hold important and challenging positions but the pay usually lags far behind the bigger companies.

The best ways to get a job depend largely on the type of jobs available which are dictated by the companies implanted there. Where I am, there were several small companies that needed someone that could wear lots of hats. That`s how I started back 10 years ago. I had to manage a small network, program an 8-bit HC11 microcontroller, design the PCB, select the electronic components, do some soldering, do some mechanical design, and train the client and fix the bugs once the product was out the door. This path has led me to be a generalist rather than a specialist.

But I talked no long ago to the guy that was my boss back then, and he said that these days is cheaper to contract out the small jobs to specialized shops which wasn't the case back then or at least he wasn't aware of competent companies that offered a reasonable cost. So things do change. Be prepared to turn on a dime.

I think that you should not have too many problems going the embedded way. But you'll need to help the hiring person to match your skills to their needs. They may just assume that they need an EE just because they're working very close to the hardware. I think that you have a bright future. One of the most competent embedded programmers that I've met did a BSCS.

I hope I did not go ramble too much and loose you in the middle. Just one more thing. Remember that your worst enemy is yourself. Don't let self-doubt and/or laziness to get in the way. Control those and you'll have a good future.

[11] http://en.wikipedia.org/wiki/Field-programmable_gate_array

Re: Web Programming Is Hard

#164
post #2

I periodically think "Man, I really shouldn't be getting paid for this. Any idiot could stick these two APIs together." In my more sensible moments, I remember that that idiot only needed to know HTML, CSS, the DOM model, Javascript, jQuery, HTTP (mostly headers and status codes), Ruby, Rails, basic MVC design, Oauth, SQL, SQL performance, five-ish APIs to support the two that needed integration, how to configure and…

It's like maintaining a skyscraper built out of Tinker Toys. What I wonder is: Does the following sentence run through the head of every expert in every field? Man, I really shouldn't be getting paid for this. Any idiot could [do X]. It certainly felt true of most of my day-to-day work in graduate semiconductor electronics. It felt true of a lot of biology research. My conclusion is that there are a mere handful of d…

  > Does the following sentence run through the head of every expert in every field?
  > Man, I really shouldn't be getting paid for this. Any idiot could [do X].
That's because most experts are humble. That is what allowed them to become experts in the first place.

Re: Web Programming Is Hard

#165

I'm currently working on a set of SOAP web services using tomcat, cxf, mysql, and hibernate among others. I decided to do a switch from embedded to web development about a year and a half ago after being laid off. My paycheck is smaller but I now work on a whole new set of problems. After working about 10 years in embedded and everything around it, I felt that I needed a change. It was as if I was solving the same pr…

Interesting approach to getting in to Grails. I came at Grails after about 12 years with PHP (and some Perl and other stuff too). There are a number of things I like about Grails (GORM, domain-first approach, etc). But there are still some things which bely the Java-ness of it, and I'm convinced most of the Java community doesn't "get" the web. Hard to put in to words, but an example might be: http://jira.codehaus.or…

I did suspect that an experienced web developer will feel some heaviness when using a framework such as Grails. I'm simply too new at this to have an idea of all the little issues that arise when using the JVM.

Thanks for the link.

Post reply on HN