TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: How do you escape CRUD jobs?

171 点作者 diminium超过 12 年前
You know the drill. When you left college, you wanted to work for the big guys - Intel, Google, Apple, NASA - doing things which can change the world. You wanted to do stuff like create a compiler or figure out an algorithm.<p>Unfortunately, reality hit back hard and you got stuck at a typical company doing CRUD operations. Make reports here, manage documents here, upgrade calendar software here. It pays pretty good but it's not the dream you wanted. Irony then rings and the deeper you move in your career, the more CRUD experience you get and the less "let's design the next generation algorithm" experience you have. Thus causing those companies to pigeonhole your resume to pass you on for someone else.<p>How do you escape from this trap?

34 条评论

edw519超过 12 年前
You're asking the wrong question, my friend.<p>Don't blame the CRUD for all the bullshit that is often associated with it.<p>(Reminder: CRUD stands for Create Retrieve Update Delete, and is the underlying philosophy for the database applications that run the world we live in, the 90% of the iceberg that most hackers never see or even think about.)<p>I've been doing CRUD for 33 years and it's been an incredible ride. I credit my CRUD work for putting me in the right hand 5% of that bell curve, ahead of the rest of my fellow hackers who have built so little of substance.<p>Sure, I've built apps that move people and things to the right place, and also have done a lot of "reports here, manage documents here, upgrade calender software here", but what job doesn't have some crap work go to along with the gravy? I've never seen any good job without it's share of maintenance, refactoring, testing, process, and meetings with drones.<p>I've also build software that generates other software, invented new frameworks, and devised algorithms that dramatically improved the way we make and build and move the stuff that's probably in your cubicle right now. I've taken cool academic theory from my pure mathematical background to build software that has blown away the posers everywhere around me. And you know what? You do that just once, and every champion in the enterprise runs to you with their giant budgets to solve their CRUD problem du jour with your "genius".<p>Believe me, you don't have to work at "Intel, Google, Apple, or NASA" to "change the world". You're just as likely to be a cog in the wheel at those places as anywhere else.<p>You can change the world from where ever you're at, and in fact, if you're working on a CRUD app, I think you're actually in a <i>better</i> position to do it. You just have to ask a better question.<p>My suggestion: "How to you escape the shackles and bullshit of your CRUD job and use all those great resources in your head to turn that job on its side and change the world from right where you're at?"<p>Find the answer to that question. It may be easier than you think.
评论 #4969777 未加载
评论 #4969090 未加载
评论 #4969340 未加载
评论 #4969137 未加载
qdot76367超过 12 年前
It's a long game, but building what you're interested in, even if it's the boring parts of what you're interested in, can get you noticed. Due to writing drivers and tools for people to use different hardware, I've now worked in/with:<p>- Robotics (via working on open source educational robotics stuff)<p>- Virtual Worlds (via making hardware to interact with them)<p>- Health Devices (via reverse engineering health devices)<p>- Neuroscience (via reverse engineering eegs)<p>- Haptics (via reverse engineering haptics controllers. Noticing a trend here?)<p>- Digital/Interactive Art (via writing Max/Puredata/OpenFrameworks/Processing plugins for aforementioned projects)<p>- Teledildonics (via [censored])<p>(My github is at <a href="http://github.com/qdot" rel="nofollow">http://github.com/qdot</a>, where you can witness the ADHD firsthand)<p>And the list grows every time I start working with a new library or device. Most of my dayjobs tagentially relate to something I've worked on in my spare time, though I try to keep from taking a job that'd completely subsume any one interest, as that tends to be a permanent mood killer (I'm looking at you, popular virtual world company that crushed my VW dreams).<p>So yeah, just find what you're interested in, do something in it, try to be part of a community around it, and let things work naturally.<p>Then comes the hard part: Tying all of this back together via /you/. You can make neat stuff all day long but if you can't tie it together with your own personality, then you're just a person who aimlessly cranks out neat stuff, which is something that will worry employers. Presenting a complete and coherent package of all the stuff you're interested in and why you're interested in it, with proof that you can do (more importantly: finish) it and show how that can benefit others is really the key. But damn, is it ever hard to get there.<p>PS stay the hell out of teledildonics. That is MY TURF.
评论 #4968823 未加载
评论 #4968631 未加载
评论 #4968768 未加载
meaty超过 12 年前
Welcome to software development. You have just discovered exactly what 90% of it is. applying canned solutions to known problems. Roll up your sleeves and dig in.<p>Even our massive financial platform is a glorified CRUD box with a mere three bits of cool algorithm stuff which have been the same since 1995.<p>Most of it is pasting bits of crap onto more bits of crap.<p>Even google apps is pretty much just a big CRUD system.<p>The art and science is making all these operations scale. Well that's what it is for me. 50 operations a second - no problems. We hit 10000 queries/second. Things work differently then which is where you have to turn back to deep computer science knowledge.<p>I've developed a deep knowledge of mathematics, statistics and algorithms trying to keep CRUD systems alive. we write our own cache, store and messaging layers as well as a logging system that can keep up with the audit requirements of the above.<p>At the end of the day, its quite interesting if you don't shrug it off.<p>Embrace what you have.<p>Edit: I am also the guy who gets all the traditionally shitty jobs. The hard things to debug, distributed bugs, timing and locking issues, race conditions, reliability problems, the 3 day debugging sessions, the Microsoft patch breakage dance and the 'its 2am and everything just caught fire' jobs. I LIVE for this. I am literally the last hope every time. I never lose. Being trusted with this and as the last line of defence is an honour and why I rather like what I do as well.<p>It's always challenging if you go looking for challenges.
评论 #4969048 未加载
kalyan02超过 12 年前
Build something. Anything. Small or big, doesn't matter. Just build - in your free time. If you don't have free time, make time. What to build? Pick something that you wish software/hardware did, but you don't know any that does.
评论 #4968569 未加载
trustfundbaby超过 12 年前
Someone has already mentioned side projects, my other suggestion is to look at parts of your app where you can break out of the CRUD cycle.<p>Could you use threading to speed up bulk processing of documents?<p>Can you use some new package or gem to improve your day to day development flow? (for example, i just found a rails gem that helps speed up start up time for rails tasks, totally using that at work)<p>How about your Version control, are you using the latest techniques or type of software?<p>What about learning more about dev ops, how to manage the server and do little things here and there without bothering the server guy?<p>What about search, are you writing contorted sql queries to hit the databases for your search, or are you using elasticsearch, solr, sphinx or lucene which are better suited for those things?<p>Is your logging app writing to file logs, or (worse your RDBMS database) or could you use mongodb to speed that up?<p>Are you analyzing data you collect in an insightful way or is it time to read up on some analytics tutorials, to come up with smarter ways to inspect your data?<p>how fast is your software? Could it be faster? How can you make it faster?<p>etc etc etc<p>In the end it comes down to your curiosity to learn and try new things. That will help you keep abreast of new ideas and help you spot opportunities to apply them <i>sensibly</i>. It should get you from where you are until the point where you feel that opportunities like these are exhausted, at which point, its time to move on.<p>Never let yourself stop growing as a developer.
评论 #4968601 未加载
codewright超过 12 年前
Build up a portfolio of the kind of work you want to be doing.<p>You don't get a job in compilers by complaining. You do it by getting commit access to gcc.<p>Hop to it.<p>Alternately, do a startup in the space you want to be in and let VCs pay for the privilege of you educating yourself. Either way.
评论 #4968763 未加载
symbion超过 12 年前
- Do non CRUD work outside work - Once you have enough experience/knowledge, seek out a non CRUD job.
评论 #4968503 未加载
评论 #4968564 未加载
karterk超过 12 年前
You need to find an actual problem that stretches what you know and demands you to dig deeper into areas of computer science that interests you.<p>Reading theory and books won't get you far as you will realize that the real-world problems bring a lot of perspective that is not documented well enough in most books.<p>So, how do find a challenging problem to solve? Most people will suggest working on side projects, but some <i>really</i> hard problems (e.g. distributed computing) requires resources that make it impossible to pursue as side projects. Also, having people much smarter than you around you helps with the learning. So, the alternative in this case is to join a start-up or a big co just so that you get a chance to explore difficult problems.
wturner超过 12 年前
I don't think your question really has to do with programming. I think it has to do with the feedback loop of being pigeon holed, age and job history. There is a Robert Greene book that just came out called "Mastery" which I haven't read, but I listened to some of the promotional interviews he's done. He talks about this a lot and part of the book is about breaking out the cycle. I'm in that state right now with my current "job" predicament.
zura超过 12 年前
There is one interesting observation from my experience - the less developed (or even banana) the country is, the more (or exclusive, for banana countries) demand is for PHP/ASP.NET/J2EE etc Web/CRUD stuff.<p>On the other hand, in more developed countries, the demand is quite big for C++/Desktop/3D/Compilers etc "good stuff".<p>Web + large scale JavaScript stuff also falls in the latter case, although I don't consider it as "good" ;)
评论 #4968626 未加载
评论 #4969292 未加载
Lapsa超过 12 年前
There are no CRUD jobs and it's not a trap. Actually - it's quite a shame that so many programmers dream about hacking through hyper-hard algorithms instead of understanding people around.
评论 #4968722 未加载
moocow01超过 12 年前
Seek out opportunities in other industries/segments of computing.<p>The reason a lot of work is CRUD work is because most web applications and business applications are just data/information management systems targeted toward a certain use. My unscientific guess would be that 95% of at least minimally complex web and business applications boil down to being CRUD with a UI and a lot of marketing spin. This means that if you work in this segment you are going to be mostly working in CRUD. There are many other segments of computing where your work will be incredibly different.<p>Examples:<p>- Computer graphics/gaming<p>- Embedded systems<p>- Networking<p>Caveat - after working in a new segment you most likely will find that they have their own 95% core competency skill set (like CRUD is for web/business apps)
methodin超过 12 年前
You can almost always extract more from your current employer (if you haven't been doing so), you just need to demonstrate the passion and will to do different things. If you do chances are you will get some more opportunities - if not then it really is a dead end and you should move on. The biggest mistake you can make at any job is to not learn or take away anything from it. Sometimes you just have to ask for what you want.<p>Jobs should be more than a paycheck. You exchange your time/effort for growing/learning. Both parties are aware of it and should act accordingly. If one party is not living up to the bargain it's time to find a new partner.
SandB0x超过 12 年前
Lots of related discussion here: <a href="http://news.ycombinator.com/item?id=2052362" rel="nofollow">http://news.ycombinator.com/item?id=2052362</a><p>Your company probably isn't interested in switching to cool language x or doing that big rewrite that you'd hoped to lead. You'll have to identify the skills you need for your ideal job and work on them yourself.<p>A great first step is a to automate repetitive parts of your job using languages and tools that you want to learn. Don't ask if you can do this, just do it discreetly at first. It's a good stepping stone between the familiarity of your job and side projects at home.
martininmelb超过 12 年前
I've had some CRUD jobs and some non-crud jobs. Interestingly, all the CRUD jobs came through Agencies and all the non-crud jobs were direct. There may be something there...
joshcrews超过 12 年前
I'm speculating here, and may be wrong.<p>You may have a more "I don't know how I got here, but I kinda feel like somebody's slave" problem than a CRUD problem. If that's your problem, there's an eject button that will be a wild and scary ride, but you're likely to come out more healthy, excited, passionate and feeling alive. Go independent (as in quit, become a freelancer/consultant).<p>If you do, your initial contracts probably won't be on the forefront of changing the world; but I'm speculating that that's not your problem anyway.<p>After going independent, and learning all of the self-management and business skills and establishing a reputation you'll also get more project offers than you can do and you'll be able to choose ones that change the world more, and the impact of your projects will probably go up overtime. And at that point, you'll also be hunted by the world-changing organizations that seem so distant now (if you want to leave consulting and go back full-time)
__--__超过 12 年前
There is one way to change programming fields that almost feels like cheating and is a feature unique to startups in Silicon Valley.<p>Find a company doing the work you want to be doing that's currently in crazy startup staffing mode. That's how I went from writing CRUD apps to making facebook games.<p>I was completely unqualified for video game development, as most of my experience was with web-based CMS's in PHP, but I could solve fizzbuzz and they were desperate for programmers.<p>That last part is key - they wanted to launch 30 games in one year and didn't have the manpower. They grew from 30 people to 300 in one year, and 300 to 600 the next.<p>The downside to this is you need to be able to learn new skills and languages fast in a high stress environment. But, if you do it right, you can learn a lot in a short amount of time as well.
mseebach超过 12 年前
So <i>what</i> do you want to do? Practically <i>nobody's</i> full-time job is changing the world, and for everyone who does manage to put a dent in the universe, loud opponents will tell you you're doing it all wrong. First step in "escaping" is having a vision of what escaping looks like. What <i>really</i> makes you happy? As others have pointed out, escaping may very likely still look a lot like a CRUD app. Spend some weeks keeping a diary, taking note everyday of what you did you liked and what you didn't like. Try to figure out the "why" for each of those. A pattern will likely emerge.
josh_fyi超过 12 年前
There is tremendous demand for software engineers today. No matter that you are doing CRUD, employers need you.<p>They can't see your code that you developed at work, so a Github with some quality code would be good -- but the key is to remember that there is <i>some</i> employer out there who is better for you, and that that employer needs you as much as you need them.<p>Try my webapp, fiveyearitch.com , which we've optimized exactly for employed software engineers who want to scratch your itch.<p>I think it's important to leverage your current job, not escape it. You have a powerful starting position; you just need to hop over to a better job.
programminggeek超过 12 年前
Start by figuring out how to make it better. As in, automate the boring parts and fix the parts that suck. Also, start building something cool. Like, seriously, build something cool. Even if it's just for you.<p>I've been geeking out about software architecture and engineering lately to make TDD not suck, so I built Obvious to scratch my own itch. It's the most fun I've had building software in years. I don't know if anyone else is going to care, but I've enjoyed it immensely. <a href="http://obvious.retromocha.com/" rel="nofollow">http://obvious.retromocha.com/</a> if you're curious.
andrewtbham超过 12 年前
I recommend clearly articulating your programming experience. Reading your job description I can't tell if you're doing programming or sys amdin/support desk type stuff. Like "upgrade calendar software." Are you installing upgrades or writing the upgrades?<p>Also, what do you mean by crud? I assume... <a href="http://en.wikipedia.org/wiki/Create,_read,_update_and_delete" rel="nofollow">http://en.wikipedia.org/wiki/Create,_read,_update_and_delete</a>
orangethirty超过 12 年前
Back when I started working on cars (like a million years ago) my dream was to build hot rod Ford Mustangs. I would devour every magazine or book that was about doing that (I still have a bin full of them). Why Mustangs? My brother loved them. He worked and worked and bought himself a pretty beat-up example (an '82 GT, which was slow as hell). In that car we had countless adventures that I still cherish to this day. Like that time we drove about 20 miles in around 5 minutes because the parts sotre was closing and we needed a part for a Corvette (another story altogether). Or the time the crankshaft fell into the oil pan, thus leaving him stranded and engine-less (it was pretty funny).<p>So, I got into cars because i had a dream of modifying Mustangs. My brother had a friend who was a Racing mechanic that speciliazed in Mustangs. We hung out at his shop night after night. I kept learning how cars worked (I was around 13 years old), and how to modify them.<p>Years passed and I had turned into a walking Mustang library. I could quote the specs of every Ford Racing Camshaft (still can). I kept working on cars. Little by little I kept getting experience. But I was not getting any experience with Mustangs. Shoot!<p>Tinme passes by and I own a repair shop. Im a full fledged mechanic. Working on cars was <i>fun</i>, but it didnt make me happy. My dream was Mustangs, not Toyotas with a bad power steering pump. But I kept going.<p>After a while, I got the chance to work on Porsches. I quickly learned all about them and got into the art of modifying them. It was fun, but they were not Mustangs. Got as far as working with other high end Euro cars such as the BMW 850 V12 6-speed. Fine car. Sucky build quality.<p>Went back to fixing regular cars because I had to pay the bills. I still hadnt modified a mustang per se, but knew how to. I wanted to buy one of my own but could not afford it. There I was wanting to do something, and not doing it because I thought I couldnt.<p>Then my brother passed away. With him, my desire to build Mustangs went away. Turns out I just wanted to build Mustangs with <i>him</i>. You know, make him proud. At that moment I realized that we have to ask ourselves what do we want to do and do it. Instead of beating around the bushes, just go straight and do it. Life is too short to waste time on shit that doesnt make you happy.<p>Even though I dont know you, I can say the following. If you are tired of building bullshit applications at work, then quit. Save up some money, quit and take another job doing whatever it is you want. If you cant find a job doing just that then start your own company. Funding these days is easier to get than Malaria.<p>The problem is not CRUD apps (which I actually like doing), or algorithms. The problem is that you feel stuck. Un-stuck yourself by making a decision and sticking to it. It is better to make a bad decision and in the way fix it, than to wait until conditions are right (which they will never be).<p>I never got the chance to build that Mustang with my brother. You will never get another chance to write amazing software either. Carpe Diem, my friend. Carpe Diem.
bozho超过 12 年前
You can get some motivating stuff done even without changing the field. Specializing in something cool and strange is fine, but as someone mentioned - there will probably be a 95% repetitive task there as well. While staying at your current industry segment, you can still do interesting stuff: I've discussed that here <a href="http://techblog.bozho.net/?p=1063" rel="nofollow">http://techblog.bozho.net/?p=1063</a>
patz超过 12 年前
Hi, I'm a QA in a industry company and I'm doing these daily manual testing just because I was a previous field engineer and knows much more about the domain than my fellow colleges. I'm so tired of such kind of job since everyday just get exhausted doing these test. I'm in a great puzzle about what to do next, and I'm also wondering what can I do if I change my job. Can anyone give some suggestion? Thank you!
bryanh超过 12 年前
Smart hackers are in really high demand so this shouldn't be that big of a problem. Talk to a few companies that do interesting things. Most are hiring.
ssylee超过 12 年前
I have trouble finding a CRUD job to work in. At least the expectations from employers are not that high.
Executor超过 12 年前
Join foundations like Apache, FSF, Linux and Mozilla? Join open jobs like Valve, Github, 37signals?<p>Either way... I don't think changing the tech world is the answer. It's our SOCIETY that needs changing, requiring people to be politically active, self-educate, protest, etc.
wenbert超过 12 年前
Find different ways in doing it. When I do not have time, I do it like how I did it in my previous projects/work. When I have some time, I try do it in a different way - look at my previous code and then try to improve.
shreyash02超过 12 年前
Boring jobs exist everywhere even at Intel, Google and NASA.
swapnilt超过 12 年前
Hmm..Maybe do something like - 1. Resign 2. Start/Join a startup
vegas超过 12 年前
You quit.
Aqueous超过 12 年前
You have a job. Stop complaining.
martinced超过 12 年前
Tired of CRUD? What about learning CRA (Create Read Append)?<p>There are <i>so</i> many places where people did add "time" information to CRUD DBs because of the 'U' and 'D' that it's not even funny.<p>Learn a CRA DB and go apply to companies using <i>today</i> technologies that shall be used in the future mostly everywhere.<p>Most CRUD DBs I've been working with would have had absolutely zero space issue had they been using a CRA DB. And this would have solved so many issues. The only downside of "CRA vs CRUD" is that CRA DBs tend to be bigger (not than the CRUD one who did poorly re-model time that said)... But with today's hardware and especially memory growing up so fast and going down in price so quickly (the two being related but not identical), it's really not a problem anymore for 99.99% of the companies out there to simply store facts in a "ever growing, append-only" DB.<p>Just an example: there are many times where someone up the chain asks for some information and you either have to ask the DB guys to give you a backup of the prod DB at "time X" on some DEV/PREPROD environment <i>or</i> you have to go fetch business information by parsing logs.<p>These are two major fails. And they're mostly related to the fact that most CRUD DBs are modeled as "non factual". The 'U' and 'D' are irreversible operation losing business information and developers time.<p>So learn about CRA DBs like Datomic (which you can, btw, back with a SQL DB like PostgreSQL) and then go apply to companies who "saw the light".
michaelochurch超过 12 年前
Accept that software is not a meritocracy. Not even close. The politics are as vicious as in any other industry. You want to know why that idiot is calling technical shots while you're downwind of the complexity that he imposes? Because he played the game, and you didn't.<p>Now, the good news is that most software companies are running at about 5% efficiency. Most of the code they have exists to serve dipshit requirements that aren't necessary and make no sense. It's junk complexity that no one would miss if it were gone. Why is this relevant? Because if you're putting 8 hours per day into order-following grunt work, you're an idiot. Do that, and of course you'll have no time to work on interesting stuff. The way you get a better job is to spend at least half your day learning the skills that you'll need to get where you want to go.<p>Treat it as an optimization problem. You want not to get fired. That's one constraint, but not a tight one because a lot of people keep their jobs for years while doing very little. Your objective: you want a better job in a year. Are you going to get a better job within the same company, doing more interesting work? Or are you going to leave for an external promotion as soon as it's viable? No one is going to know if you put side-project accomplishments on your resume, so you should.<p>Most people only "look for work" when they're in shitty situations. The rest of the time, they either (a) coast, or (b) put their all into their assigned work because they "really believe in the company". Both of these extremes are ridiculous. Always keep an eye open for something better, and start your search process when things are going well, not when they've gone to shit, politics have turned against you-- note, 95% of firings are about politics, not "performance"; that's an attempt to use middle-class guilt to prevent a fired employee from seeking legal recourse-- and you've lost your confidence.<p>You need to be selfish, because no one will look out for your advancement. Treat well the people who treat you well. Find ways to read machine learning books at work. (Don't open a book at your desk; that's political suicide. Get an e-reader or PDF.) One thing: don't write any code that you care about owning using company resources or "working time". If you want to turn a side project into something salable, get up at 5:00 or dedicate your weekends. It's not worth the risk.<p>So yes, the disgusting truth is that 90% of the work you'll be assigned will actually hurt your career. This is why, in most jobs, you should be putting just enough into your assigned work to get by, and using the surplus for your own advancement.<p>By the way, most of the work going on in the corporate "big guys" is junk as well. Yes, there are people at Google and Amazon who get to work on cutting-edge machine learning algorithms, but most people at those companies don't, you'll almost certainly not get such work in your first year, and the politics you have to navigate to get onto those projects will disgust you and, if you succeed, make you a worse person.<p>One solution would be only to work at open-allocation companies like Valve, but in 2012 there aren't that many of those yet. There will be more in the future, as they outshine the closed-allocation dinosaurs and starve them of talent, but that will probably take 10-20 years.<p>For the mean time, you have to learn to fight. One of the problems with most career advice sites is that they give AFC advice instead of teaching Game. The people who get to work on the good projects are those who figure out how to control the division of labor. They found a way to make people trust them "prematurely" and gained enough influence over the division of labor to have a niche. It's not a trivial thing to do. You'll have to go far out of your comfort zone, learn some social skills you might have been weak in, and it will take years. Right now, though, I don't see any other option.
评论 #4969404 未加载
评论 #4969371 未加载
评论 #4969088 未加载