Hacker Newsnew | past | comments | ask | show | jobs | submit | alexquez's commentslogin

Personally can't live without a high quality monitor. I use a single 42' Dell. It gives me the most productivity for the buck having a single space for every window, terminal and editor.


I've worked at 2 startups for a combined 14 years. One as an engineer and the other as a co-founder. I hate to say it but you and the author are both right.

That's the incredibly frustrating thing about startups. Where to spend your time depends on the context.

At first, you're desperate to validate your product and understand your customers. Spending more time in the lab won't save much time because you have little overhead and changes can happen quickly. Prototypes don't always convey a product's value. Imagine looking at mockups of Dropbox before it was released. I'd be the skeptic saying "So I can only sync one folder? That's stupid!", yet I love Dropbox.

I think Intercom's opinion is based on mature, profitable, companies that build ambitious new products. The proportion of time invested in user research, design and prototyping costs a fraction of changes downstream. My current company is in its sixth year and we have millions of users. In the first six months, users could tweet feature requests and we'd release that week. Building new features today requires a 3-month lead just to be considered for the roadmap.

PM done right can be magical. I don't believe in Smurfs, fairies or 100x devs but I believe in 100x Project Managers.


IME "100x devs" have been those that to a certain extent can do their own PM'ing (as well as people managing, have substantial technical chops in their own right, an insane work ethic...).


100x Product Manager, yep.

100x Project Manager? I don’t see it. Not that they don’t bring value, but project managers just don’t have enough leverage in the process to be 100x.


I should have mentioned that this magical 100X PM chooses the right solution to the biggest problem. I'm not referring to the PM who manages a project he or she was given. You can't manage your way to glory if you're solving a problem no one cares about.

Think Drew Houston deciding that magically syncing files on save without an explicit "Do you want to sync" step was a good idea. Magic doesn't happen often, but it exists in the world.


Yes, in a certain way, Larry Page, Mark Zuckerberg, Elon Musk, etc. are millionX PMs.


I've been in software for 14 years without a computer science degree and carry a chip on my shoulder because I missed out on algorithms and compilers in school. I'm mostly self-taught and have had the opportunity to run a SAAS company for six years now (CodePen).

I'm winging it like many other people in our industry. I wish I'd had two things to when I started my career.

1. A right of passage that endorsed my skills as a competent developer (or that educated me on what skills I'd yet to learn).

Something equivalent to what doctors have when they receive a medical license and become board certified.

After five years on the job, no one cares about your cute degree but the 21-year-old version of me who knew nothing and was a tiny bit terrified of being found incompetent cared.

You are born with a level of confidence (unsubstantiated and unproven), but you can also earn it by doing a substantial amount of work.

A right of passage within the software industry that showed a fundamental level of competency beyond the fizz-buzz test would've worked wonders for the young me.

2. A formal mentor.

I spent years flailing within technology. I learned the wrong things, dove deep into the wrong technology (Java Swing :|) and made obvious mistakes. In retrospect, I would have paid to work for a capable mentor when I started who could have validated my work and guided my efforts.

Alas, software development is free, unregulated and open to all. That is what makes it beautiful. That is what makes it frustrating.


> dove deep into the wrong technology (Java Swing :|)

For someone, such as yourself, who has been in software for 14 years I'm surprised that you'd write these words. Most people I've met with your years of experience realize there isn't a "wrong technology" there is a "right technology for the problem" and a "right way to use a specific technology". I suspect you're applying hindsight bias in thinking, "I could have gotten to where I am sooner if only I hadn't done the things I did and instead done these other things." For all you know you might have found a mentor who pushed you to be better at Java Swing and you could have been the person to "fix it" so to speak.


Pointing out the tech I used at the time is a bit of a red herring for the argument I was making.

The point I should have made was that I focused on the technology instead of the fundamentals of software. I was obsessed with learning the tech that that existed at the time instead of learning how to craft software in general with the least amount of complexity.

I wrote a website that got 10 visits a month with Spring and Struts. I had simpler options but was pretty convinced everything had to be "enterprise grade".

Today, if you had to build it, you'd build a static site.

I learned quite a bit from these mistakes. My argument does romance the idea of a mentor that was hyper-intelligent and cared about my career.

Mistakes are always made. Mentor and mentee alike. C'est la vie.


Ah, that makes sense given the context. Thanks for the additional input!


Second, what were the alternatives at the time? I mean I'm sort of a web developer and work in React and such, but do I feel regrets about having spent a year and a half building an application in Backbone? No, because I know back then, React and Angular and such were non-existent.

Besides, most software, especially front-end, has a very short half-life and it's not unreasonable to believe you'll rewrite the whole thing every 3-5 years anyway. Write front-end code like you'll throw it away, write core back-end like it'll drive your business for the next decade or so. At least the database.

(Of course, as I found out later, Angular had been in development for years before work on Backbone had even started, but it wasn't a google project or well-known at the time).


> Something equivalent to what doctors have when they receive a medical license and become board certified.

In the US this requires four 8+ hour exams, spread out over at least seven years of training; each exam requires months of preparation. I have a hard time imagining most programmers would elect to jump through those sorts of hoops just to feel more confident about their jobs.

> In retrospect, I would have paid to work for a capable mentor when I started who could have validated my work and guided my efforts.

I think this idea definitely has some merit. I was very fortunate that my first big job after getting my CS degree was on a very agile team that leaned toward the bleeding edge. I wonder if there could be a way for programmers to rate the development environment of certain companies.


I think a better equivalent would be something like the FE exam that mechanical engineers take out of college. It's given right at the end of college, but could be given at any time for self taught programmers.

Hard part is implementing the test to be (almost) purely problem solving and agnostic of language.


Actuaries go through something similar with the SOA exams. It seems to be effective but maybe actuarial science changes more slowly than computer science.


Are you mentoring someone now - is it on a commercial or personal basis?

There are a lot of certifications in computing fields, why don't they meet the need you felt (feel?) for objective acknowledgement of your skills? (From where I am they all look like primarily commercial efforts rather than efforts to provide objective recognitions of standards/abilities.)


If you want to take Algorithms and Compiler courses, Stanford, Georgia Tech and many others have great options online.

I don't think it'll help at all - I've got a bachelors in computer engineering and computer science and masters in computer science and feel pretty similarly to you (and know plenty others in the same boat as I am) - but the option's there. I actually did my MS for this very reason. I enjoyed it very much and learned a lot, but it didn't help the imposter syndrome.


I'm about to finish up my CS degree and I couldn't implement most algorithms and data structures without looking them up. I know nothing about compilers. Never taken such a course.


Compilers are a lot of fun; I did compilers in grad school. I regret not taking more EE courses. I would expect we all think about the classes we wanted to take but didn't. :-/


100% agreed. 18 y/o me was an idiot; i'd have done thing significantly differently.


Frankly, had I known I would be where I am today by my own whims, I would've majored in something like philosophy, not taken more compsci courses.


I wonder how things would have gone if I had gotten into Lisp right in 1982, instead of 2000.


Here I am, a (floabt) poliSci+=econ major, wishing I had been in CS. I don't truly regret it though, I think it gives me a unique perspective.


Except for perhaps the most trivial ones, and ones that exist in many variations, you shouldn't implement algorithms and data structures without looking them up. I would add, without looking them up from more than one source.


I have a degree but honestly can't say I've ever really used anything from algorithms or compilers courses on the job. Nobody (meaning, very few people doing mainstream startup/SaaS development) writes fundamental algorithms, you use libraries and classes from the language you're working in. Most people don't work in compiled languages anymore, and if they do, they don't write their own compilers.

Maybe understanding the concepts from these courses helps. But despite having a degree I often feel that I am (to quote TFA) not really “clever enough” or “good enough” or “well-rounded enough” or “deep enough” in their discipline. Almost everything I do day-to-day I did not learn in school, I learned by flailing around for a while, reading documentation, and gradually working things out.

Yet I don't feel anxiety over it, because I get my work done, and can see that I accomplish more (in some case a lot more) than many of my peers. Yes, there are also some others who are clearly better than me, but that's life.


> Nobody [...] writes fundamental algorithms, you use libraries and classes from the language you're working in. Most people don't work in compiled languages anymore, and if they do, they don't write their own compilers.

This is sad thing to say. I'm a sysadmin, and I'm regularly using the knowledge about algorithms to assess which data structure to use in my programs, I've written recently a binary search function (if we're talking about fundamentals), more than once I needed to write a priority queue that allows fast(er than O(n)) updates to random elements, and I assure you that I'm very happy that I took the compilers course, because I've written several parsers (one more interesting was a translator from a simple query language to SQL, to easily extract data from inventory database). And I am a sysadmin, I'm not supposed to write that much. What went wrong?


> I have a degree but honestly can't say I've ever really used anything from algorithms or compilers courses on the job.

I've found knowledge of the fundamentals (compilers, operating systems, algorithms, etc.) useful in interviews and arguments. That's about it.


I really want to change that. It's a waste of time to be asking people about those things in interviews for application development (and similar) positions. There is a whole other set of skills we should be asking that we don't. Problem solving, distributed systems, failure states, etc. Things that understanding algorithms, compilers, and operating systems have no bearing on. It doesn't hurt to know those things but it is essentially wasted time/space.


Don’t most career fields come with important knowledge you learn as a junior, but don’t actually use on a daily basis? I assume doctors learn a huge variety of things in school, but practically don’t use more more than 50% of that knowledge on the job. But having this knowledge makes you better at your job overall.

I never got a CS degree, but I wish I did. There are times I run into obscure issues where deeper knowledge of the compiler, os, etc would help me understand the problem better, or how to design my code better.


There's nothing in a CS degree that you can't brush up in a self-study.

For example, I have a hard time believing my compilers class at UT serves me better than someone taking one of the compiler MOOCs I've seen people mention on HN from time to time. Especially since it was 10 years ago. The class cost me over $2,800 too.

It might be tempting to think a CS degree would help you know more about things you don't, but I think it can be an excuse to not just dig into it yourself. It's not like CS majors graduate with an understanding of OS and compilers in the wild they'd have to actually debug.


My favorite technique is asking “what’s a great undergraduate program / course(s) in this field?”

And then getting the syllabi. (A lot of professors just host their syllabi on their publicly accessible site, not through a portal. If one instructor needs you to go to a portal, try another instructor. Try searching for the syllable PDF or .Doc via Google)

And then learning the topics on the syllabi.


You might be able to learn stuff on your own but you'll probably do it at a much slower pace. I consider myself an autodidact but when I started taking in-person classes at my local CC I got access to an almost custom level of guidance. "You get out what you put in": If you're expecting professors to just upload all this karate to your brain, you won't get as much out of it as the guy practicing at home and bringing his questions in.


> I have a degree but honestly can't say I've ever really used anything from algorithms or compilers courses on the job

I ended up having a job writing programming language tools for a bit. Then there was some graph stuff one time in 10 years. It can come up occasionally. I still find it's something nice to know.

A more realistic example might be understanding the limits of regular expressions/languages and what they can/can't do well. Like the bus conversation I overheard glorifying some "smart" guy parsing XML in a stored procedure using regexes.


>I spent years flailing within technology. I learned the wrong things, dove deep into the wrong technology (Java Swing :|) and made obvious mistakes. In retrospect, I would have paid to work for a capable mentor when I started who could have validated my work and guided my efforts.

I think this is inevitable. We're lucky to be living during a time that has been extremely fruitful and revolutionary in programming languages and technologies. I spent many years on Flash and Silverlight but I don't regret it. Most of those skills transfer to other domains easily.

> Mentor-

Yes. Even after 10 years in the industry I feel like I'd love to have someone to poke me in the right direction every now and then.


Also, using technologies I ended up hating and/or experiencing the limits/downsides of is what compelled me into new, wildly different ones.

I think stagnating is the danger, not learning the "wrong" things. The latter is an important part of gaining perspective.


Having experienced so many platforms with 0% thought put into how does this work on more than one platform certainly gives me a huge appreciation of stacks that are built multiplatform from the start. I don't see myself jumping deep into any tightly-coupled-to-one-machine tools anymore for example.


Thank you for creating CodePen.

Others have mentioned, it already but I feel like I must echo the same sentiment.

I finished a 4 years CS degree years ago and I can honestly say that throughout my career I never had to create a linked list by hand.

Quiet frankly, knowing how to implement a heap with your eyes closed doesn't mean anything.

Running a successful SAAS for many years and scaling it on the other hand, is far more of an impressive accomplishment.

Kudos to you.


How would you find such a mentor?

So far every job I've joined since finishing school in 2012 I've been the "smartest person in the room". It's been incredibly frustrating to not have peers to learn from technically.

It was so bad that I left my city (Recruiters and the jobs felt very toxic to me) and became an expat, started self learning what I wanted until I could consult enough to sustain myself.

Now I joined a large company for a large project in asia and I'm STILL missing people I can learn from.

I'm reaching my 30's, and have only worked at small to medium places with near zero mentorship.


Some people would question your experience, and there is a chance that you are failing to appreciate others.

However you may also accidentally be the big fish in a small pond. If that's the case try to get to the bigger pond. If you get to one of the big tech companies and find even there nobody is competent enough to mentor you then your either a genius or oblivious.


Thanks, you're 100% correct and when I recently explained my history to startups out here they have the exact same reaction.

I've been jumping from small pond to small pond until now.

This large company's project is outsourced to over 30+ people where none of the devs have even touched React and come from an Enterprise Java background. It's 6+ months and late, when really the product would take a team of about 8 to do in 4 months. I come in and suddenly I'm tech lead managing and mentoring others.

I understand even this post feels like I'm unappreciative but it wasn't until two months ago that I had a teammate I could feel happy working with rather than me mentoring them.

I don't consider myself great or a genius, but this pain of knowing you can only teach yourself so much has bothered me since my first job.

Hence, how does one find a mentor?


I was serious, if this is actually the case you literally have to go where people of talent congregate. As you increase in skill those places become fewer - you may have to move.


Thankfully things are changing positively for me.

But I fully agree with what you've said and I will keep it in mind moving forward.


While I think you make excellent points, I believe that impostor syndrome is actually quite common, if not moreso, amongst the highly educated.


I think this is because you work with some tremendously smart people and as such end up feeling inadequate in our own knowledge. You're pretty much required to work at a certain level as there is some expectation of your knowledge from other peers.


I’m sure you meant well, but this response really comes across as saying “dont worry, you don’t have imposter syndrome - you’re too poorly educated for that. You’re actually an imposter.”

The point is imposter syndrome affects people who are high achievers but don’t feel they earned the respect that gives them. In tech, that high achievement status can be orthogonal to the level of formal education, so regardless of how highly educated someone is, they can look at their peers and feel like they don’t belong.


With all due respect, I think you're reading something into my comment that simply isn't there. Perhaps I should have denoted 'formal education', because the OP is educated, just not formally.

The only thing I meant (beyond what I said) is that while there are many good reasons to pursue higher education, if one does so with the goal of ridding oneself of impostor syndrome, that could very well turn out to be ineffective or perhaps even counter-productive.

I'm simply relaying my own experience to the OP. I work in software with a post-graduate degree and am also licensed by a professional engineering body and while it's not with me all the time, I do endure bouts of impostor syndrome as well despite these things that should assure me. It makes sense; now I've got these extra letters behind my name that I'm supposed to live up to - and we know how our minds can take that and place unreasonable expectations on ourselves.

My experience, especially in higher education, was that the more I learned, the more I realized how much I didn't know. I noticed this amongst my peers as well. Some of the people I knew that suffered the worst had PhDs!


> “dont worry, you don’t have imposter syndrome - you’re too poorly educated for that. You’re actually an imposter.”

I didn't get that at all when I read that.


> dove deep into the wrong technology (Java Swing :|)

Over my career, I have worked with so many technologies nobody knows about now... That's the part of the game. That's like working for a startup that didn't work out - of course, it's worse that being employee #3 at Facebook, but if you got to do some cool stuff, got paid and learned from the experience - you are still not too bad. The experience will be useful the next time, often in ways you can't now even predict. Including "no, this doesn't work - we tried it at $JOB-2 and it was a complete disaster" :)


> After five years on the job, no one cares about your cute degree but the 21-year-old version of me who knew nothing and was a tiny bit terrified of being found incompetent cared.

If you feel that you know nothing, this is good, since then you know that you have a lot to learn, which you will hopefully do then. I thus consider it as dangerous if one does not feel dumb all the time.

> I spent years flailing within technology. I learned the wrong things, dove deep into the wrong technology (Java Swing :|) and made obvious mistakes.

Also the mentor will just tell you about what is trendy to him/her at the time. So be honest: You rather look for a person to pass the responsibility on for the things that you did wrong.


> After five years on the job, no one cares about your cute degree but the 21-year-old version of me who knew nothing and was a tiny bit terrified of being found incompetent cared.

True for the most part. But having a degree from the right school opens doors that you would otherwise have to devote years of self-study and aggressive marketing to, magbe, have a chance at prying open. If yoh want to build a career at Google that doesn't mainly consist of grovelling around in AdWords, step one is to have graduated from a God-tier school (e.g., Stanford).


I was fortunate enough to have an outstanding mentor. What a difference that makes. We worked together for years on some really cool DSS stuff. We were constantly trying to outdo each other and it made us both better.

As far as the degree, I'm sure you've realized by now that drive can compensate for just about anything. Also, everyone has to prove to themselves that they are good enough. Once that happens, results are limitless.


Even folks with degrees in CS are still self-taught, they just got a guided head-start. All intellectual fields require constant study and practice.


I think it's the other way around for most, they gave themselves a head start in their teens and then got some guidance at university.


Life-long learning, that is one of the key attributes that I look for when interviewing folks.


Nice story. CodePen is awesome. How about trying a different story for yourself from now on?


Glad you like old CP. I'm extremely happy with where I am.

My statement romances the mentor I'd had found. Sheepishly my ideal mentor is me with 14 years of software experience.


Most of the things taught in a CS degree or Math degree are simply too specialized to be useful. Sure, everything therein can be found somewhere in the industry. But, for the vast majority of us, we'll only use a tiny percentage of what we actually learn.

On the other hand, there's sooo much you do need to learn as a SE that's not taught in a CS degree. If you drew a Ven-diagram between what you learned in school and what you actually need to do the job, you'd find very little overlap.

We really need a new model for how we think about education.


When you say self taught do you mean you bought a data structures book and read it yourself with no lectures?


Not OP, but that's certainly one way some of us learn. Usually you combine methods— supplement knowledge from various streams to gain a fuller picture. There are also a ton of other great online courses and videos of lectures for free online (these days).

REPL's are also great tools for running exercises to test your knowledge. It's hard to lie to yourself— if you care— you either begin to understand or you don't. If you don't, your work will suffer.

I cared— but I was inclined to. You don't sit in the basement as a kid trying to get your mum's old 80286 to do something after you found the BASIC prompt because you want to play ping pong all day.


I agree that this comment is frivolous based on the assumption that reading HN comments is about gleaning knowledge from the community. I love a great contextual joke, but not in the wrong place.

If you hate Amazon's practices there is more reason to study them because of their success. Every successful company that's done a pereceived evil has also tapped into a market advantage that led them to their success.

If you hate Amazon learn why they succeed and build better. Dismissing everything they do well because of what they've done wrong leaves the advantage to everyone who sees nothing wrong in draconian business practices.


> I love a great contextual joke, but not in the wrong place.

The joke brings to light the quite real and currently newsworthy situation resulting from the attitude expressed above.

These are things that need to be talked about, here is the right place to talk about them, and humor is often an effective way to highlight hypocrisy and abuse.


I agree that this effort is in the right place. Having the opportunity to change Realtime networks like Pusher, PubNub and Firebase would be great for apps.

I'm surprised those apps haven't made a bigger effort to implement this logic for production. It would certainly make them unique and hard to leave.


I'm impressed by how accessible Facebook makes open source tech. It's always top notch but documented in a way that allows regular devs the opportunity to use it in their own apps.

Smaller size and easier to use is a big win. Going with the MIT license puts a real bow on this release. Thank you to the React team.


Ditto. And this new release seems to have been characteristically well-handled. I love http://isfiberreadyyet.com, the engineering team's blog, their responses to github issues etc.

My level of genuine respect for the way they do open source makes me feel a bit awkward about the fact that I dislike FB's primary product and mission. Especially given I make quite a bit of use of their code.


Seriously! Great news. My company is not just a software company, so when I proposed using React before (under the BSD+Patents license) it would have killed our ability to enforce our non-software related patents against fb.

https://code.facebook.com/posts/300798627056246/relicensing-...


It is very good, but I wonder what their intentions are. Is it to help hire talent?


Assuming you're referring to the licensing part, it's probably because they've gotten a lot of public backlash for their previous licensing scheme that has caused some to avoid React altogether.


No, I mean - open sourcing their software. I don't know what their goal is as a company.


Sometimes to attract talent, sometimes to brings free work to a project.

Other times it's lock in for related technologies (current or future plans).

Some have speculated that it's a legal trick, like the problem everyone was insinuating with the React license before the recent change.

Anyone else have reasons I'm missing?


Three other (somewhat related) reasons I’ve heard stated by FB folks:

1. Makes it easier to identify talent out in the world that they want to go after.

2. Raises the technical reputation of Facebook, making it easier to get candidates to say yes.

3. Makes it easier to ramp new employees up on Facebook’s stack if they are already familiar with a lot of it from open source.


Sorry to hear you're shutting down. I know it's a terrible experience, but thank you for being open.

Can you explain a bit about how you tried to monetize the site? What did you try? What worked and what didn't?


TBH we never got to the point of monetization.


Uh... you mean never got to the point of monetization, right?


Whoops, I accidentally a word. Thanks!


all those free t-shirts did you in :(


- FLAVOR: [Ubuntu Desktop]

- HEADLINE: Improve Desktop Apps Ecosystem. Make it easy for Ubuntu App Developers to Make Money $$$

- DESCRIPTION: I recently moved from Mac OS X to an Ubuntu desktop machine for day to day development. All my comments are relative to Mac OS X (I apologize cause I'm still a Mac fan boy). The only thing I really miss is the massive number of high quality apps available to me on Mac OS X. I wish Ubuntu could support Mac Apps in some sort of Mac sandbox (ala Wine for OS X). I know this is a pipe dream cause of the complexity of it but putting it out there.

A more realistic request is that you create/encourage tool makers to create Snaps. Snap packages must become compatible with flatpack to have any chance of becoming ubuitquitous. Fragmentation in Linux desktop apps will only continue hurting Linux adoption. I think the Ubuntu App directory feels too basic with too few options. Encouraging developers with better tools, better discovery and making it simple to port Mac/Windows apps to Ubuntu is the only way Ubuntu can begin to gain marketshare. I love Ubuntu but I still go back to my Mac Book PRO when I need to edit audio or have to login to many sites since I use 1Password and they have no Ubuntu app.

Ubuntu could work with the top 500 Mac App developers and help/advise them on how to easily port their Apps to Ubuntu. I'd happily pay double the price of the Mac App store Apps to have them on Ubuntu but their is no way for me to give them money. Get money to the developers and they'll come. This is missing from Ubuntu Apps.

I apologize for the long rant. I would've written a shorter comment but I didn't have the time.

- ROLE/AFFILIATION: Developer at Startup


I agree. We've started a project at work that we will maintain for years. We researched the setup for a few weeks and continue to tune it. Once you understand the small components and create a working setup reacct/webpack/babel is much less daunting. This type of article is great when you're trying to ensure you've chosen the most optimal setup for your project yet it isn't for everyone.


Awesome write up. I'd love to know what the plan for monetization was. Was it simply hoping you'd be acquired or did you have plans to monetize directly from users.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: