Interesting case study that was able to buck the trend is Atlassian software. I have personally seen bottom up influence in 3 large publicly traded companies land Atlassian very nice (and well deserved I might add) license and support agreements.
They built a product that would usually be sold at the VITO level, gave it away for open source projects so it became defacto to developers and viola Jira is now replacing IBM products in many enterprise software development shops as we speak.
This is exactly how I got my start in software. I was hired to walk a warehouse at a furniture retailer and take inventory with pencil and paper. At this time I had 0 computer experience.
Soon I was voluntarily transferring the paper to spreadsheets and printing them out. Next was a starbase db with a simple form on a laptop.
A year later I had built a custom system with a mysql database, barcode scanners at the arrival and departure gates and automatic email reports to the owner.
It is because of this that I was able to get to move on to another company to be hired as a software developer without a college degree.
I see some very interesting comments on this thread. I remember not long ago lots of people where upset that people where scraping stackoverflow and getting a higher ranking in google results. This was a threat to S/O's business model model and it made lots of people on this board uneasy.
How is Pad mapper any different? How does the fact that this site has a better UI design somehow give them a pass to use data a company has spent millions of dollars gathering and feels is being used in a way that is a threat to their business model?
This guy is so off the radar it is a wonder why he is allowed to publish this stuff.
I will just add two points.
1) Facebook, Google, and other silicon valley companies are far from the norm of software development jobs. There are far more jobs in finance, retail, and travel for engineers than the type of position he is describing.
2) Most directors, executive directors and VPs I have worked for started their careers as software engineers as a matter of fact engineering is how they developed the business knowledge to become executives.
This may work for hiring interns but IMO there is a lot more that goes into a quality Sr. Engineer than can be identified through analyzing a candidates code commits.
A few examples of engineering qualities which seem to be either looked over or not respected on this board include...
- Estimation Skills (can the candidate estimate their own abilities and identify pitfalls in the upcoming tasks?)
- Documentation Skills (including diagramming, white boarding, etc)
- Communication Skills (can the candidate communicate to the recipient on the level which is required?)
- Systems Integrations concepts/experience
- Systems Performance concepts/experience
- Personality (e.g. can the candidate accept that their proposed solution is not the best in the room and go on to implement another proposal)
- Politics (can the candidate navigate the politics inherent in an IT organization or are they always burdened by conflict)
In my experience anyone can learn to code, and most people can put together an application, but to become a great performer in any IT organization, the soft-skills are even more important than the coding skills.
WOW! I must say that I am actually surprised how many people have replied that they do little or no testing.
Perhaps this is because I am in the enterprise development world as opposed to the start-up world.
The cost and frustration involved in delivering a critical bug into a QA or production environment is much higher than the cost and frustration of writing and maintaining tests.
Every action in business has a cost associated with it. The more people involved (customers, UAT, Managers, etc.) the higher the cost. The sooner you can discover the bugs and fix them the less people are impacted the lower the cost.
This is how you make yourself as a developer more valuable and justify your high salary/rate by ingraining habits into your daily routine that reduce costs for the business.
In this I also imply non monetary costs, like the personal costs involved in asking a VP to sign off on an off-cycle production release due to a bug that could have been identified by a test prior to the integration build.
I don't find an applicable selection for my company.
We write and run so many tests that it is a full time job curating the test suites that should be run prior to code delivery. Basically, if you don;t like writing tests you will be miserable at our shop.
The tricky part is keeping testing standards consistent when you get beyond 30 or 40 developers.
Developers tend to be more opinionated about testing practices than even editor selection and curly brace placement.
Can you build a business on data that you do not own or have control over? What is your plan if the usage rules change, you get request limited or your dependency disappears altogether?
You need to have a solution to a problem people are willing to pay money for. You are not likely to find that by asking on YC.
Your best bet is to pick a long term software developer contract at a large company.
Are you looking for anything you'd pay for? I'm fairly certain that anyone here with an answer to that question would be working on monetizing it. If you want to find an answer, pick and industry (preferably one you have experience in), find out where the business owners hang out, then ask them what problems they have.
I have argued JS as an intro language for years. My main argument has been not based on language features which I feel are unimportant in forming a young programmers mind but rather in the complete lack of barriers to getting started.
Take for instance python( my personal language). At a minimum you need python installed on the computer. Then you need to deal with issues such as the PATH and PYTHON_PATH. Also you have to understand package naming and import scheme.
With JS you only need a .html text file on the desktop.
Write code, save, double click, results. It is something that anyone who has even seen a computer can understand.
Particularly if the student has not had much experience in computers in general, things like paths, imports, file system knowledge and command line interfaces can be a barrier to learning code. You will eventually need to learn all of the things above to be a programmer but why bore a child or teenager with the details of a file system or command line when you could be showing them how to code animations on a web page.
I will admit, that struggling with run time environment, compilers and class path issues made me into better engineer sooner, but I already had a passion for what I was doing.
I don't see how this valid commentary on client side templates. In general, most implementations I've worked with store the markup in a script element so it is not rendered by the browser.
They built a product that would usually be sold at the VITO level, gave it away for open source projects so it became defacto to developers and viola Jira is now replacing IBM products in many enterprise software development shops as we speak.