hacker news with inline top comments    .. more ..    19 Sep 2016 Ask
home   ask   best   3 years ago   
Ask HN: New OSS Projects: Go or Java?
3 points by kt9  43 minutes ago   14 comments top 4
softinio 6 minutes ago 0 replies      
personally if I were you I would use this as an excuse to learn Scala especially as you have a Java background.
benologist 37 minutes ago 1 reply      
I think you should decide what your single most important goal is:

1) launch a project

2) learn a language

Learning a new language will derail your project completion and launch indefinitely, often permanently.

pbohun 36 minutes ago 4 replies      
The most important thing is to use the right tool for the right job. If the project has networking and doesn't involve building a GUI or graphics, then Go is a great choice. (Not that Go can't do GUIs or graphics, but there aren't very robust and mature libraries for those things yet).
_RPM 24 minutes ago 0 replies      
How about C?
Ask HN: Do you worry that your product will be killed by one of the tech giants?
2 points by shanwang  1 hour ago   2 comments top 2
p333347 46 minutes ago 0 replies      
Not at all. It seems these bigcos in their desire to diversify either produce an inferior version of pre existing hit software which will eventually fizzle out (or kept under life support), or simply buy out a viable competitor to the said pre existing hit software. So, unless you are trying to compete with bigcos' A game software products, you shouldn't worry. I don't. One might even look to create a viable competitor and seek a buyout, enjoy the spoils for a while and move on to next idea. Again, I don't.
mrg3_2013 36 minutes ago 0 replies      
I do. This may not be popular opinion - but the mere fact that they can build what you can after you have "proved" the market for them is always risky IMO. Ofcourse, bigcos may not be able as nimble as you are - so there's hope. Incidentally, I asked a question today due to the fear of same thing.
Ask HN: In what areas are NoSQL Databases beneficial over Relational Databases?
56 points by rochak  13 hours ago   66 comments top 29
pmontra 11 hours ago 0 replies      
First of all, this question is similar to asking in which cases non-cars are beneficial over cars. Cars cover many use cases but sometimes bicycles perform better in heavy trafficked cities, planes carry you faster to the other side of the world but you need a cargo ship to move tons of containers there. That list goes on and on, up to less common activities like jumping fences (horses) or very rare ones like going to the moon.

Now, there are many use cases for non relational data stores. There are already many answers in the comments but first you have to ask yourself what you need the data store for. In the cars analogy it's where you need to go, how fast, carrying what, etc. Do you need a glorified hash table? Redis is good at that. Do you need very fast queries? You might try Cassandra but be very careful at defining in advance all the queries you're going to run: if you need sorted results you have to plan the columns for them. See http://www.planetcassandra.org/blog/we-shall-have-order/ and remember that NoSQL doesn't always mean schemaless.

Sometimes the choice is about the tradeoffs between the ease of use, installation and planning. MongoDB maybe doesn't particularly excel at anything but you install it with an apt-get (check in advance which version you get) and adding replication is easy. However you better start planning at least a partial schema for your documents quickly or you'll get ton of litter in your database. On the cons side, its native JS based query language is awfully verbose and complex compared to almost anything else, ORMs and especially SQL. Luckily we don't need the console much.

To recap: ask yourself which data you have to manage and why, then google for a database that optimizes your use case and check it against the posts at https://aphyr.com/tags/jepsen which does a super-excellent job at finding out how dbs fall apart in extreme but realistic cases. Often you'll find that a relational database is good enough. Other times you'll have to choose between relational and one or two categories of NoSQL. There are very few mainstream RDBMs but there are zillions of NoSQLs so the choice might not be obvious. Final car analogy: car + tent or camper van?

kpmah 13 hours ago 2 replies      
In my opinion, the major reason to leave behind ACID databases is if you have reached the point where they can't scale up any more. If you have reached this point, you're probably a company with 20+ developers. There might also be very specific use cases where specialised databases are useful, such as a search index.

ACID gives you a lot of nice guarantees and it's silly to give it up if you have the choice.

As for MongoDB in particular, I would never use it for anything. It doesn't seem to do anything particularly well. There are better specialist 'NoSQL' databases that have actual benefits to fit your problem.

abannin 12 hours ago 0 replies      
When clients ask this question, I always suggest starting with a good SQL solution and then figure out why it won't work. So if you're not hitting any major problems with MySQL or SQL Server, then NoSQL solutions will just be incredibly labor intensive for, from your perspective, a loss in functionality. Each NoSQL database is different and designed to approach problems from SQL databases differently. For Mongo, this is having a very flexible denormalized schema with very fast reads. However, companies such as Pinterest and Facebook have found they can accomplish this with MySQL or Postgres through different data modeling. I think the reasons for NoSQL become much clearer when trying to build applications that do not keep a normalized data model.
mabbo 13 hours ago 5 replies      
The benefit: typically near infinite scalability with little loss of performance. It's super fast even when there's a lot of it.

The cost: transactions, relations. These are actually incredibly valuable things to have.

If you're storing billions and trillions of records that don't need relations, NoSQL is great. You'll keep your fast lookups and saves no matter how big things get.

This can matter a lot more if you're a start up with the goal of having trillions+ records some day. Your SQLServer will eventually not be able to scale any higher, and then what? Moving to Nonrelational from relational is so painful.

mamcx 4 hours ago 0 replies      

The real question is:

In what areas are (recently build in the internet era) NoSQL Databases beneficial over (barely-)Relational traditional RDBMS Databases (build decades ago)?


Scalability, the easy to mutate schemas and all that are artifacts of our times.

MySql, Sql Server, etc are barely relational databases, coupled with a almost-decent way to interface them (sql).

For example, in them you can't store a relation inside a field. Schema manipulation is hard. A lot of potential programming power is not possible, without convoluted recent additions the Sql language, or hacking together strings.

And most of them have been made for workloads and scenarios that are at odds to what internet-scale companies need.

Unfortunately the solutions was do "Nosql":

"Any sufficiently complicated database management system contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of a good RDBMS."


Check the relational model. Is far simpler than people give credit, even without get too crazy like some purist want.

In fact, I don't see any reason why the relational model can't be used as flexible how json is applied in the backend.


Despite all the above and more, a traditional RDBMS is solid enough that most people not need to get crazy and move to (full) NoSql. However, could be good to use them in specific cases (like caches, search engines, etc).

But I have experience people using NoSql stores and trying to do the kind of work a RDBMS have solved easier and faster.

greyskull 13 hours ago 0 replies      
I'm still a newbie so I have a hard time articulating this, just a couple years into my career. The "rule of thumb" that I've worked up so far is that document stores are great for records that are useful in isolation but are possibly heterogeneous in nature. (of course there's nothing stopping you from storing foreign keys and doing "joins", or just storing data with a strict schema). Logs and configuration are both simple use cases.

One example from my work is ingesting usage information from a variety of products, like a system that takes in information about all your utilities - power, water, gas, and so on. Each product will have its own attributes that's important to describing it. In a relational world, you might: add columns to your table as new attributes need to be described; come up with some kind of composite attribute system where you try to encode multiple pieces of information in one field; go for a star schema so every product gets its own table; or pivot so that each "record" is represented by multiple rows and the attribute's identifier is a field. Each of those approaches has their ups and downs but they're all present due to hard schemas. In a NoSQL world, a single table can have wildly varying records, each of which is useful on its own without needing to spread metadata into other tables.

fauria 11 hours ago 1 reply      
I find them useful in many scenarios:

- Bootstrap projects with open or changing requirements. A relational model is usually harder to maintain.

- Storing and querying objects with complex structures, such as those received from APIs.

- Having a single programming language across your entire application stack (ie MEAN). Sometimes comes up as a "should" or even a "must" requirement.

- Fast and simple object storage (ie sessions).

brudgers 3 hours ago 0 replies      
The relational model is useful for being well understood and part of the reason it is well understood is that the relational model is founded upon relational algebra and another part of why the relational model is well understood is availability in the wild roughly corresponding with the creation of the personal computer.

Search versus query [for some definitions of 'search' and 'query'] seems like a case where business logic suggests an advantage of one approach versus the other.

Good luck.

andymurd 12 hours ago 0 replies      
NoSQL is for heterogeneous data that is read in a homogeneous manner, whilst relational excels at homogeneous data read in a heterogeneous manner. If your schema is constantly changing, relational is painful, conversely writing reports against a NoSQL datastore hurts too.

If you come from an RDBMS, you're probably going to dislike MongoDB. I like it for prototyping/MVP but once the schema settles down it's time to move.

However, NoSQL does not start and end at MongoDB, no way. There are lots of different flavours, from huuuuuuuuge key/value stores, to timeseries, to write-one-read-many document stores, to remote syncing mobile app datastores and probably loads of other types that I haven't used yet.

So figure out why you want to use NoSQL (CV building can be a reason too) and play around with some toy installations.

JDDunn9 12 hours ago 1 reply      
The only time you should use NoSQL is when you have no other choice. For example, if your database is too big to fit on one server, or you need a massive number of writes per second. Otherwise SQL will give you better performance, much more security, and better data integrity.
dtheodor 10 hours ago 0 replies      
NoSQL is all about missing useful features (such as integrity, transactions, query flexibility), that you unfortunately have to drop if you want to be able to scale in certain ways. Thus, NoSQL dbs are practically worthless until you get to a point where your SQL database won't work any more. At this point, you need to evaluate exactly what is it that your SQL db cannot handle, and switch to a different product accordingly. For example, you would switch to Aerospike if you need to scale writes.
chhs 13 hours ago 0 replies      
For a personal project I used MongoDB over MySQL for somewhat faster prototyping. I was collecting a lot of data from the X display server during runtime and storing it into a database for querying later. Since there were a lot of different types of messages and I wasn't sure about which parts I wanted to keep, rather than building tables for each of them I converted them to JSON and piped them into a MongoDB collection.

I know this is not a good example compared to a production issue, however I think the reducing the amount of time need to get started with a project is very useful over something that needs a lot of configuring before it can be used.

Steeeve 11 hours ago 0 replies      
Different NoSQL platforms solve different problems. Graph databases can build and query relationships between entities with significant speed. Mongo has been mentioned a few times because it's easy to iterate development with a schema-less database, but it's also fantastic when dealing with class based structures with sparse attribute populations (e.g. a CMDB). Cassandra's notion of an always available database is a key foundational element in high-scale devops environments. Scylla offers incredibly fast transactions (they advertise 1M transactions per second per server). There are XML databases that store and query documents in ways that are easy for developers to translate (i.e. xpath). There are databases like Axibase that are built for time series data. BayesDB is easy to query for statistical inference.

It's very easy to fall into the trap of "everything is relational" or "I could do that with Postgres/Oracle/etc". There are a lot of problems that have good RDBMS centric solutions, but you don't have to look too far to find end users or developers who are unhappy with the RDBMS solutions that they work with on a daily basis.

twunde 6 hours ago 0 replies      
There are some specific scenarios where nosql solutions simply work significantly better. Probably the premiere example is time series data. You can use sql, but it's a pain. There's a reason why most monitoring systems use some sort of nosql database. A specific business domain example is multi-level marketing. Updates in SQL can take hours as one has to go through the entire tree to make any updates. Graph databases are a much more elegant solution to that problem domain.
pkolaczk 11 hours ago 0 replies      
The two things, that Relational Databases typically don't do well:1. High availablity and no downtime, ever.2. Unlimited scalability of all operations, including writes.

Honestly, many (most?) NoSQL databases also don't really do them well. If you need these two properties, the only valid choice is really a master-less, shared-nothing database system. E.g. Apache Cassandra.

joeclark77 31 minutes ago 0 replies      
A lot of the entities we deal with in web apps are complex, multi-table structures when stored in a relational database. Think about blog articles (tables: article, author, tag, comment), user profiles (tables: user, friends, follower, interests, etc.), photos, tweets, ads, and such. The beauty of something like MongoDB is that you can store all the data as one "record" in a collection. You can also retrieve it with a simple query. These "records" are structured as something like JSON, so you can just take the data structures you're using in your app's code (particularly Python or JavaScript), and store it as-is with no conversion.

Compare this to an RDBMS-based web app, where to display a blog article for example you'd need to make multiple queries of different tables: first the "article" table to get the text, then the "author" table, then all the comments, tags, images, or whatever. The NoSQL way is much easier to code for this sort of thing. The lack of ACID doesn't matter so much because these kinds of data are usually written just once, read many times, edited rarely, so there are few opportunities for inconsistencies to creep in.

Fannon 12 hours ago 2 replies      
With RDBMS you have to design the schema first, with NoSQL you don't need to. This is nice when you're dealing with very diverse data (or data you don't even know how it'll look like) or are prototyping. One thing I like about this: You can store your data as it is, you don't have to fit it into your model / world view. You can make sense of it later.

At some point you'll probably have to deal with schema anyway. If this comes at a later stage, you'll have to deal with a lot of diversity and inconsistency on potentially many points. This can become much more painful and time consuming than having dealt with it from the beginning.

If you're thinking about NoSQL as something like a simpler, modern SQL alternative, you're probably having a faster start and a lot of problems in the long run.

Scalability is something, NoSQL databases have for them, definately.

k__ 9 hours ago 0 replies      
Depends, there are many types of NoSQL databases, that all have different focuses.

SQL started getting big because it was the one size fits all approach that worked 90% of the time. In fact it got so big, that universities started to teach only them when they talked about databases in general.

But there are many problems, where SQL is not suited.

If you got hundrets of terrabyte of data you need to analyse, you're probably better of with a Hadoop cluster.

If you need inter process communication, Memcached or Redis is worth considering.

If easy db-sync is your main goal, couch/pouch-db is probably a good choice.

etc. pp.

But these three DBs alone are so different, that they can't be compared like MySQL and PostgreSQL can.

asadjb 13 hours ago 0 replies      
At work we use NoSQL for stats collection and aggregations. Our reason for choosing MongoDB is that we can have a rich document structure with multiple levels of nested documents. And with the rich update queries that MongoDB provides, we are able to update all of those nested documents in a single call, without having to update multiple documents.

That's one of the places where it made sense to use a NoSQL solution. Our documents had multiple levels of nesting, but no joins. We also use MySQL for our relational data, so in the end you have to pick and choose. All of the research we did pointed to NoSQL being a great fit for storing nested documents for stats collection. We haven't regretted following that advice yet.

ythen 12 hours ago 0 replies      
I would suggest to try using both SQL and NoSQL for some hobbies project. From there you should be able to experience the difference between these db. In a fairly complex application, you will see SQL, NoSQL and Redis, all exist for different purpose.
epynonymous 9 hours ago 0 replies      
typically the advantages of nosql are along the lines of schema-less, speed of writes, reads should be faster typically as well.

speed of writes, there are no constraints that need to be checked with nosql (typically), it's like writing a value into a hash map. with sql there needs to be a check for multiple constraints: uniqueness, null, datatype, etc. if there's a relation then it needs to check those constraints as well.

the whole thing about rdb's is that they're trying to normalize data where possible, you deal with id's and the fields of the table can change without you needing to propagate these changes to other places. in nosql, if you have relational data then you have to manually make sure all these changes are propagated, pretty annoying if you ask me and quite error prone, you end up writing logic an rdb already optimizes for you. take "cascaded deletes", too, this is manual in nosql.

the best usage of nosql is if you have stagnant data, and you need to write it quickly, take a log file contents, for example, or if your data consistency requirement is not that critical (let's say you implement likes for a web post system, if you're missing 300 here or there, not a huge deal). other cases are things like counters, if you have a game where you're tracking scores, things are changing rapidly , but there's really not a lot of relation with other data, redis is a great example of this type of nosql storage, built in incrementing counters.

most of the time when someone brings up nosql for an application, my initial reaction is that it's a premature optimization, for a lot of data, there are tight relationships and rdb is great for that. but i tend to see that you need both in many cases.

BinaryIdiot 12 hours ago 0 replies      
NoSQL is amazing when you have non relational data. Think of it as a giant, distributed hash table. Hash tables are awesome and wicked fast. But toss in relations and now you got some interesting problems. RDMS solves that for you but scaling is now harder. At least in my opinion anyway. You can still use NoSQL in these situations but you're typically duplicating data or indexing it yourself so you can refer back to it.

It's all about trade offs. If you're small just pick the best one for the job at hand. When you need scale you can usually hack either into scaling well enough.

_Codemonkeyism 12 hours ago 1 reply      
In the early days of companies MongoDB has helped me tremendously with development speed because it is schemaless. Since Postgres 9.5 I'm trying to replicate the speed with Postgres binary JSON but most access libraries are still SQL oriented and I haven't achieved the speed of MongoDB with Scala/Rogue yet.
bmh_ca 7 hours ago 0 replies      
No mention of BigTable so far - ACID compliant NoSQL with transactions IIRC. But you have to host with Google. (For at least the data store component)
pan69 13 hours ago 0 replies      
I use MongoDB for periphery data to my applications, i.e. to aggregate data such as logs and events. It's also great to store things like reports in it due to the flexible structure. However, for my actual application database I always use SQL (MySQL).
Vanit 13 hours ago 0 replies      
On the topic of joins, I'd suggest if you're bumping into the joining limitation that you've chosen the wrong database for your needs. Having said that, a lot of it can be solved by rethinking your structure to take advantage of embedded documents.
Kiro 12 hours ago 0 replies      
For me it's all about not having to define a schema. I can just take my JavaScript object and insert it in a collection. Sure, I know you can do this in PostgreSQL and I might switch.
devnull791101 12 hours ago 1 reply      
a good place for NoSql is where you don't know what data you are going to receive. e.g. i get weather data from a number of different sources in a number of different formats. the sources and formats change fairly regularly. i am able to extract the data in key/value pairs but don't know which keys will be in any given set of data. with nosql you can extract any key/value pair and save it to the database without needing to parse the data
huuu 11 hours ago 0 replies      
If you need data integrity you will need a RDBMS.
Ask HN: How do you read?
9 points by dsinecos  6 hours ago   8 comments top 6
e19293001 4 hours ago 0 replies      
When I read a textbook, a specification or an article or something technical that I consider important parts I use the Feynman Technique[0].

As from what the linked article says,

 The technique is simple: 1. Get a piece of paper 2. Write at the top the idea or process you want to understand 3. Explain the idea, as if you were teaching it to someone else Whats crucial is that the third step will likely repeat some areas of the idea you already understand. However, eventually youll reach a stopping point where you cant explain. Thats the precise gap in your understanding that you need to fill.
I used to repeatedly explain the idea to myself. At first I find it hard to recall though I don't feel discourage when I'm unable to hold it on my mind at first and just think that there are a few that can but once I train myself I'll eventually improve.

When reading blogs, HN comments, novels etc., I usually read it once just like I'm watching television or a movie.

I don't worry that I read slow since when I've found out that Donald Knuth also reads novels very slowly[1].

If you want a more systematic reading, there is a book[2] which has been mentioned often here in HN.

> Is there an app that you use?

I use org-mode for everything

[0] - http://calnewport.com/blog/2012/10/26/mastering-linear-algeb...

[1] - http://www-cs-faculty.stanford.edu/~uno/retd.html

[2] - https://www.amazon.com/How-Read-Book-Intelligent-Touchstone/...

Red_Tarsius 4 hours ago 1 reply      
I usually highlight key concepts of the chapter and rewrite chunks of text into my notebook. Typing on a computer is useless memory-wise, handwriting is more enjoyable and effective. I write small and fast by holding a ruler on the baseline.

If I enjoy a topic, I write down and rearrange chunks from different sources. If you look at the same topic from different books, it's easier to grok that knowledge.

> I read slowly and at the end of a 300 page book I might have only three key ideas that I remember, but I'm able to explain and illustrate them well.

People don't buy brochures, so the writer is driven by the publisher to write hundreds more pages. The market does not reward concise exposition. I read plenty of books with 3 pages worth of ideas and 300 fillers.

grif-fin 5 hours ago 1 reply      
You are not alone but not common. I have the very similar experience with reading. I prefer textbooks than novels in general and I am indeed slow in going through them.

I think I understand it more in depth and pay attention to more details than other I've talked to about this. It seems like a forced trade-off to me as I have no choice but to continue this way with reading. I cannot simply proceed if questions are unanswered.

Looking it from an advantage point if the good read is chosen the knowledge is acquired and understood in powerful depth. I guess better teachers we would be.

f_allwein 5 hours ago 0 replies      
Learning to speed read helps a lot. I worked through Breakthrough Rapid Reading by Peter Kump and really liked it: http://www.goodreads.com/book/show/100800.Breakthrough_Rapid...

I highlight important stuff while I read. After reading, I usually create a word doc/ mindmap with the key ideas.

PaulHoule 6 hours ago 0 replies      
I read a lot on my tablet at the gym.

If something is really hard to read and technical I'll read it several times in a row.

I am not a big fan of highlighting, often I come back to a book I highlighted later and wonder what I was thinking back then.

glook 6 hours ago 0 replies      
I highlight a lot. If there is a key concept or something that I want to learn more about, I highlight it and let it go. Then, I come back through the book and review the highlights when I'm not reading to read.
Ask HN: Software for helping visually impaired persons?
2 points by adamwi  5 hours ago   4 comments top 4
Davidbrcz 4 hours ago 0 replies      
There are screen readers (text to speech generators), braille displays.

I don't know what is the status for fingerreader ( http://fluid.media.mit.edu/projects/fingerreader )

Also have a look at HandyDV Linux (https://handylinux.org/index-en.html). The aim is to offer for visually challenged and blind people an accessible computer. A french guy is beyond it and there is a kickstarter-like compain to support it (french page about it http://linuxfr.org/news/financement-participatif-de-handydv-..., couldn't find anything in english).

lovelearning 4 hours ago 0 replies      
This article written by a blind developer was posted here some years ago. You might find some good tips there about tools.

[Article]: http://blog.freecodecamp.com/2015/01/a-vision-of-coding-with...

[Discussion]: https://news.ycombinator.com/item?id=8965048

10dpd 4 hours ago 0 replies      
What kind of computer does he have? Screen magnification software is built into most OS's for free.

E.g. macOS:


Free screen readers:

VoiceOver (built into macOS / iOS)

NVDA: http://www.nvaccess.org/

ChromeVox: http://www.chromevox.com/

scpotter 4 hours ago 0 replies      
You're looking for accessibility tools. Modern desktop and mobile OSes have these built-in, Google [whatever OS] accessibility zoom.

Open source screen reader: NVDA (www.nvaccess.org)Industry standard screen reader: JAWS (www.freedomscientific.com/Products/Blindness/JAWS)

Ask HN: What would make your life better?
11 points by curryMyLambda  12 hours ago   12 comments top 8
shermanyo 9 hours ago 0 replies      
I have issues trying to learn some specific part of a system, or new API when I already have some knowledge in the area.

I find most guides are aimed at beginners following an example, and aren't always the best resource to get through an issue when I'm stuck on one detail.

The alternatives are browsing the actual documentation, which can be hard to navigate when you are still learning.

The last option is to ask questions on coding forums, which is where I have had the most success. The main problem is the asyncronous nature of clarifications or follow up questions.

I'd love an app or site where I can post a question to a forum, with a link to a realtime chat session I can monitor for the next few hours and interact with people interested in the topic / question.

I've had a few great experiences on irc channels where a string of questions would turn into a tech talk by someone who understood things in detail. Or someone bored found my problem interesting enough to walk me through step by step until things clicked.

Maybe your site/app could give users a URL to paste into their posts, similar to people linking pastebin examples. It should handle the creation / removal of rooms and possibly archiving in case people want to save a transcript for reference.

If it focused on doing one thing well, I'd use it. I probably wouldn't switch to a new 'general' forum just for the feature though, unless it had a large community to go with it. (stackoverflow network for example)

Whatever you do, good luck and thanks for taking the time to give back.

irremediable 8 hours ago 0 replies      
Rental search that makes it easy to find a pet-friendly place. I live in London, UK, and although we have a few good property search engines (Nestoria, Zoopla, etc), none of them have a simple way to sort between pet-friendly and not.
shoo 9 hours ago 0 replies      
a magical aura that forced participants in society to internalise negative externalities when making decisions
emilburzo 9 hours ago 0 replies      
A remote job with good work/life balance.
iDemonix 7 hours ago 1 reply      
More money.
jurgenwerk 10 hours ago 0 replies      
bigiain 11 hours ago 0 replies      
Something like Uber, but for stabbing annoying people who won't stop bugging you with lame startup ideas in the face!


chrisked 10 hours ago 1 reply      
shorter winters.
Ask HN: How long did you work on a side project until it was your full time job?
77 points by jorgemf  1 day ago   32 comments top 12
patio11 1 day ago 1 reply      
I'm probably near the higher end of the distribution to this among my Internet buddies: about 4 years. Partly this was due to it truly being a hobby, partly because bingo cards are not the most renumerative thing in the world, and partly because my skill level at the time was rather low.

A more typical number among my SaaS buddies is about 18 months of sustained effort until you hit $10k in MRR, which typically is enough (after expenses) to keep a solo founder in the field indefinitely.

The fastest I've ever seen it done is about ~6 weeks for SaaS. Even shorter for infoproducts, although depending on the dynamics of the business that might be "launch one, get relatively flush with money, buy yourself enough time to launch a second one" until you figure out some not-too-obvious things about how to sell them repeatedly.

A consultant, naturally, can hit day job equivalent levels of revenue virtually immediately after hanging out their shingle (if they've got a client lined up). A fairly common pattern is "Inform day job of intention to quit; immediately go back to working for day job as 1099 during transitionary period; start building pipeline while delivering for Client #1."

merqurio 1 day ago 2 replies      
28 months a mean of 2~3h per day. Now It's my full time job and 3rd Start-up. The most time consuming part until now, finding good partners, product definition, market research.

So far so good, but it confirms me that Europe is slower for firing up a project.

dhruvkar 1 day ago 1 reply      
If side project == freelancing, i just had my first (and only) month $1k. This was though Upwork. I negotiated hard and got 75% more than the initial offer. It felt more like negotiating a commodity (my day-job) than a specific skill set. I won't knock Upwork too much though, as I got my first freelancing gig through them without much effort.
wolfgoatcabbage 1 day ago 1 reply      
Probably unusual, but about 10 weeks. It was a niche market paid iPad app, written and deployed in 6 weeks, and we saw immediate sales so we left off iOS contracting and began working on it full time.

That was a little more than 6 years ago and it has continued to be our full-time project. However we did add versions on most other platforms and a cloud sync service, and I'm not sure that we would've continued to generate good revenue without those additions.

michaeloblak 7 hours ago 0 replies      
It took me 9 months. In two weeks I'm quoting a day job. I hit $2k MRR (after expenses) and finished contracting. I'm planning to use the runaway money from contracting at the beginning.

For me, the worst thing is siting at the office, doing job for someone else and not being able to care about my project and customers. Doing it full time is a huge relief.

stevesearer 1 day ago 2 replies      
https://officesnapshots.com here -- I'd say it was 5 years of being a hobby before I decided to try to make it into my full-time job. Was a history teacher when I started the site.

Another 2 years or so of temping, miscellaneous web work, and anything else to pay the bills.

It has now been 2 years where the website is truly my full-time work and I'm looking to hire my first employee in the next few months. Pretty excited about that!

PerfectElement 1 day ago 1 reply      
18 months until I reached $4k in MRR. It wasn't enough to pay the bills, but I had a couple of years of runway.

I ended up not using my savings as the business started to grow 1k/month after I quit my job.

thatgerhard 1 day ago 0 replies      
9 months, started interfering with day job, quit, worked out the notice month. That was 5 years ago :-)
goodbadvlad 9 hours ago 0 replies      
I'm not there yet. For me 'side project' is more a way of living, than a one-time effort to quit a day job. Even if my side project becomes main occupation some day, I'll come up with another side project to learn new things.
needcaffeine 23 hours ago 0 replies      
I have a problem where I get distracted way too much and now have several side projects at 50% completion. And now looking at them, I wonder why anyone would pay money for them. So...I guess the answer is infinity.
markwoodhall 1 day ago 0 replies      
I've been working on my side project since the back end of 2014. I've had at least a couple of 3-4 month breaks from it during that time.

It's only just getting close to something that I can share with people, so I won't be working on it full time in the near future (if ever).

tedmiston 1 day ago 1 reply      
I don't really believe in deciding whether to go full time based on how long you've been working on a side project, but rather based on its traction.
Ask HN: Where do you go to get recruiters to find you a job?
79 points by nicholas73  19 hours ago   57 comments top 20
einarvollset 17 hours ago 1 reply      
Genuinely surprised at the usual "muah muah, can't swat them away" chatter.

Having basically the equivalent of an agent in your corner would be a very valuable service, but crucially this agent would need to have an impeccable reputation, hence any of the usual recruiters only "doing secretarial work" wouldn't work. They would need to be genuinely well connected professionals.

I can see an ongoing relationship with salary increase negotiation support, a bi-yearly in person strategy session ("It might be time to move on") as well as genuinely going to bat for you in terms of your contract ("hey, let'a push for a 7 year exercise window instead of 90 days")

Anyways. I don't know if such a service, but it seems like it should exist.

ufmace 17 hours ago 1 reply      
Set up a good LinkedIn profile with up-to-date resume and set your location as where you want to work, and the recruiters will come to you. Do the resume part first, so that when you set your location, you'll show up for any recruiters searching as new in that location and with a full resume ready to view.

Go to any meetups or conferences you can find for tech stuff. You'll probably find plenty of recruiters, or at least people who can introduce you to some. I've got pile of recruiters messaging me on LinkedIn, and they almost all explicitly ask if I can point them at any other candidates who are looking. Bring business cards with your email, phone, and website, even if you have to get them made yourself.

In my experience, doing any of this even half-heatedly is plenty to get you so many recruiters that you'll start wondering how to get them to leave you alone after you take a job.

mVChr 19 hours ago 1 reply      
Do you have an up-to-date LinkedIn account? I spend so much time shooing away headhunters I'm sure several would jump at the chance to help me find work and make their commission if I asked. Many have premium accounts and alerts set up so that if you change your status to looking for work they'll pick up on it.
epmatsw 17 hours ago 2 replies      
Try hired.com. My experience with them was nearly identical to working with a recruiter, but a lot less hassle IMO.
griffinmichl 18 hours ago 2 replies      
I was connected with my current company (reddit) through Triplebyte. They're a YC recruiting company that puts you through their own technical screens / interview before agreeing to work with you. The interview process is intense, but they connected me with some awesome companies (fast tracked to onsite interviews) and generally had my back through the whole process. Highly recommend giving them a shot.
JSeymourATL 2 hours ago 0 replies      
> I'm in no rush to do an intensive job search on my own.

The Talent Agent for Techies concept comes up 2-3 times a year on HN. As long as companies (with deep pockets) fight over supply, the business model for individuals won't work.

If you're sufficiently motivated, research the small, boutique recruiters that serve your market/industry. Ask around for who has a good, established rep in the space.

Understand that time is money to these guys, they don't cater to job-seekers. Make a friend. You might approach them by first asking how you might be able to help with a potential referral.

quantumhobbit 16 hours ago 0 replies      
I'd like to extend the question for engineers not in the Bay Area or other hubs. I've been approached by recruiters, but they generally back off once they find out I'm not willing to move to San Fransisco. I understand that there are more jobs there but it seems like recruiters don't want to acknowledge that the rest of the country exists. If I could find a software job out here in flyover country, you'd think that the professionals could too.
dsk139 17 hours ago 1 reply      
I'm a software engineer that does recruiting for ~60 tech companies in NYC (seed stage to mature). If you're in NYC, or want recommendations for good recruiters I know in the SF Bay Area shoot me an email david at inboxhire dot com.
rubicon33 17 hours ago 1 reply      
I've used Hired.com, and couldn't recommend them more. It was a great experience.
Cognitron 18 hours ago 2 replies      
LinkedIn is definitely an option. If you take the time to fill out your profile and write a summary, you should have recruiters messaging you. I get messages every week asking if I'm looking. I imagine it varies by region, but it's not like I'm in SV, I live in the Tampa Bay area. Also, the quality of the recruiters can vary a lot, so maybe talk to a few different people to see what they can offer. Remember, you're a valuable commodity to them.
johnwheeler 15 hours ago 1 reply      
Hmm... this is an interesting idea. I could see it as a valuable service for my newly launched, HN approved, and shamelessly plugged website https://oldgeekjobs.com/

Thing is, I'm trying to target a certain type of Old Geek. My theory is if someone is 45 years old with solid ReactJS skills, it signals them being an autodidact with experience--the best type of programmer, all other things equal.

If I could build a reputation for interviewing and evaluating such professionals, I could see a fun and profitable business in that.

patatino 5 hours ago 0 replies      
I got my last job via recruiter and I really enjoyed the experience. We mailed and met twice before my first interview, he knew how much money I can ask for and was very open if he thinks it's the right fit for me or not. He checked in twice the first year and I didn't hear from him in over two years now.

I'm pretty sure he keeps track if I'm still working there, but no phone/mail like "looking for something else?".

Definitely gonna contact him the next time I'm looking for a job.

geff82 14 hours ago 1 reply      
In Germany, I use Xing (Linkedin equivalent) to get a new job whenever I want. You have to know the right groups for your field of work and get part of them(examples: the "Freelance"-group for contractors, the "Linux" group or the "Adobe AEM" group) Recruiters then go there and find you (or you easily see the recruiters and drop them a quick message you are interested in what they offer).
Apreche 17 hours ago 0 replies      
They come to you, and then you can't get rid of them.
eibrahim 18 hours ago 3 replies      
Interesting timing because I am working on a service that does exactly this. Essentially I will be your agent. Tell me the job you want and your salary and I still get it for you. Help you schedule, cleanup your resume etc... in return I get 10% of your paycheck for a year.

I am currently beta testing it with a handful of people but if interested email me at eibrahim@gmail.com

watermoose 15 hours ago 1 reply      
> P.S. I could interview well with a mid-senior electronics role or a junior programmer role.

What do you mean by "electronics". Electrical engineer? Electrician?

codeonfire 17 hours ago 3 replies      
Why use recruiters? They just submit your resume to an employer like you could have done in 5 minutes. For that five minute action they want to collect a $10-20k fee. That comes out of your pocket. Plus they do ridiculous things like want you to drive an hour down to their POS office for a face to face like you are their employee. Their most recent accomplishment is dropping out of college and they will try to make you wait in the lobby for 20 minutes. Fuck. That.
orthogon 18 hours ago 0 replies      
Why, craigslist.org of course!

Seriously, half the posts on Craigslist are recruiters scouring major metropolitan areas for leads. Reply to enough posts on Craigslist, and recruiters will find you.

henryw 18 hours ago 0 replies      
I've gotten interviews from big companies using the job section of their official websites. Just make sure to spend some time on your resume.
stale2002 14 hours ago 0 replies      
Hired.com is great!
Ask HN: Where in European Union should I move to found a startup?
7 points by cosmorocket  10 hours ago   5 comments top 3
stevekemp 8 hours ago 1 reply      
[When I first wrote this your title was "Should I move to Finland .."]

I hate to be pessimistic, but if you do move to Finland you'll struggle enormously with the bureaucracy unless you speak Finnish.

Yes you can move. Yes you can move without a job, and you should be able to incorporate, and handle the minimal business things pretty easily.. But you'll get conflicting advice from every bank you speak to, and the process will be more grueling than you imagine.

If you're registered here, have permission to stay here, and you qualify I think the fact that you're a foreigner won't discount you from grants/funding. But again the language barrier will be pretty high.

(Source: Moved from Scotland to Finland. Love it. Not an entrepreneur, but I know a few.)

NetStrikeForce 8 hours ago 1 reply      
I would have said UK in general and London in particular, but as we don't know what will happen in the next 2 to 5 years, I would steer clear from that.

Ireland and the Netherlands sound like the next reasonable options. Easy to do stuff in English, big pools of talent to poach from, very open to foreign companies and who knows, you might land a sweet tax deal while you're at it ;-)

Ask HN: What does Facebook actually do these days?
23 points by kackin  2 days ago   22 comments top 16
aprdm 2 days ago 0 replies      
They have Whatsapp, Instagram and they're Facebook.

I don't know what you mean with "what they actually do". Most people on earth spend most of their internet time inside their business already. I bet they're doing a good work.

brad0 2 days ago 1 reply      
Satellite for the Internet.org project https://www.facebook.com/zuck/posts/10102407675865061

Drone www.theverge.com/a/mark-zuckerberg-future-of-facebook/aquila-drone-internet

GraphQL http://graphql.org/learn/

Long term storage https://code.facebook.com/posts/1433093613662262/-under-the-...

kackin 2 days ago 0 replies      
I know they are doing cool developer-based projects like React, but that's not innovation that matters in a traditional business sense.

Like Twitter, I can't but help think that both platforms have become paralyzed by a crippling fear of not knowing what to do next with what they have. To me that means a recipe of slow but gradual decline.

paulpauper 2 days ago 0 replies      
It's like Google, their job is to make as much $ from advertising as possible and they are doing a damn good job at it through the news feed but also Instagram. They don't need to innovate that much, as they don't much in the way of competition beyond maybe Snapchat. It's a money-making machine. All they need to do is make small tweaks here and there.
dimva 1 day ago 0 replies      
They are trying to take over the entire publishing industry with Instant Articles.

They are trying to create a mobile UI for every small business with Messenger Bots.

They have added ways to send money via Facebook messenger. This is important in places like Israel, where people use Facebook as Craigslist. It's also useful as a payment method for the messenger bots.

They are releasing innovative ads products such as automatic audience targeting (based on the conversion rate of various audiences, which is calculated by just including a facebook tracking pixel on your site, they will automatically target your ads towards the highest-ROI audiences).

qaq 17 hours ago 0 replies      
Well pretty much all innovation at google is also based on acquiring other companies. GrandCentral -> Google VoiceYouTubeBoston DynamicsDeep mindand on and on
sidcool 2 days ago 0 replies      

VR through Oculus

Better Facebook, Instagram, Messenger, WhatsApp

Leaps in AI

Internet across the world

blazespin 1 day ago 0 replies      
They're doing massive amounts of publishing and research in AI - image recognition. They need to understand all those pics uploaded to Facebook and Instagram and turn them into actionable opportunities.
marmot777 13 hours ago 0 replies      
It's fun and lots of people are on it. They make money with ads. Isn't that enough?
cm2012 1 day ago 1 reply      
They are always coming out with new ad betas.
jakebasile 2 days ago 0 replies      
They've been pushing live video pretty hard. It's on Facebook itself, via some Blizzard games, in Messenger.

Their At Work products are being refined all the time.

And as mentioned they have plenty of open source stuff.

perfmode 2 days ago 0 replies      
Developing their Ad product, becoming a profitable company.
android521 10 hours ago 0 replies      
Facebook React
anotheryou 2 days ago 1 reply      
Everybody but those without internet is on board, so they are working on locking us in and supplying internet/facebook to those without internet.

What I remember about locking in: instant articles, live video, favor facebook content over external links and some failed apps (paper, notify).

gerby 2 days ago 0 replies      
If I worked for Facebook, I could do so much for them..
NumberCruncher 2 days ago 1 reply      
Amazon, Apple & Google are making products/services solving real problems and get payed for it pretty well. Obviously in this kind of business you have to be innovative.

Facebook is the problem a lot of people try to get rid of.

Ask HN: Would you join a social network run by a non-profit?
13 points by sharemywin  2 days ago   35 comments top 12
p333347 31 minutes ago 0 replies      
That depends on whether there are enough real people on it, and it is a vicious circle because everyone would think the same. That said, if you can create one without all the stuff people hate about current social networks, you might make it attractive for enough people to join and set the ball rolling, and I might consider joining. (I am not being facetious.) So it being run by pro profit or non profit is a non issue.
nathcd 2 days ago 1 reply      
The tracking and data mining is only one problem, another is having my data locked in a silo. What I'd like from a social network is for it to be more like an RSS reader: my posts should be followable via RSS, and my news feed should just be an RSS reader from which I can follow others on the same network and from outside the network. That's a pretty simple way to get me interested.

I also would like if messaging would be handled by something like an email address (like Facebook added and then removed once upon a time), or better yet a derivative of email that's easier to self-host and encrypted by default (maybe something like matrix.org).

To me, working to break down the huge silos is the best thing a non-profit social network could bring. And, to be completely honest, I'm not sure I'd even join it, because in this system I'd be able to participate without joining the network so I could just self-host my website (and RSS feed) and use my own feed reader as I do now.

EDIT to expand on this after thinking about it a bit. Since podcasting has been the most successful use case for RSS so far, perhaps a good way to go forward with the above idea would be to allow attaching arbitrary files to posts, and to embed images/audio/video (as they're be embedded on Facebook). This would make it easy to host a podcast/video feed, or image feed on the network while still being a part of the larger open podcasting/video/visual art communities, and it'd be easy to follow. This could provide a decent avenue for advertising the network to certain segments of potential users. And (as long as you embedded items with simple img/audio/video html tags) communities like the free software community and the open web community would probably be pretty ecstatic about it at the very least.

NumberCruncher 2 days ago 5 replies      
A non-profit is run by real people and a social network needs an infrastructure. There are a lot of bills to be paid. The money paying the bills was obviously earned by someone doing things for profit or is donated by a lottery winner. I don't trust lottery winners, especially when they want to manage my personal data "for free".

If you're not paying for the product, you are the product. That's why I only use social networks with a realistic monthly/annual fee, like Xing.com or meetup.com.

anotheryou 2 days ago 0 replies      
Most of us even joined one by a for-profit. The problem is how to get my friends to move with me anywhere. Locked-in, network-effect, hen and egg problems
2AF3 2 days ago 1 reply      
I'm waiting for a distributed system, any non-profit has to comply with government censorship.
bbcbasic 1 day ago 0 replies      
No I'm bored of social networks. My email and phone number really are sufficient
anilgulecha 1 day ago 0 replies      
Non-profit is an orthogonal matter.

I think I'd much rather join a network where I'm in control of data. With tech-progress in p2p and the blockchains, I think the building blocks are already present for this kind of a network. If this were run by a non-profit, all the better.

_nalply 2 days ago 0 replies      
As long as I am sure that I am not the product and the non-profit manages to overcome the network effect.

Bonus points for using or interfacing to standards like e-mail, RSS, IRC and the like. Additionally if most of the infrastructure is peer-to-peer. For example a social network based on WebRTC. This way a lot of centralized infrastructure goes away.

znpy 1 day ago 1 reply      
Yes, as long as I am okay with how such social network treats its user and its data.

I am still quite saddened hat Snake, the cryptographic social network, didn't get the appropriate funding when proposed on indiegogo. https://snake.li/

chrismonsanto 2 days ago 1 reply      
I don't care either way as long as there are people I care about socializing with on the service.
sharemywin 2 days ago 1 reply      
what would you like to see different from FB, LinkedIn etc.
nuevoyork 2 days ago 0 replies      
if you pay me $5 i'll join :-)
Ask HN: Is it possible for someone to not be cut out for software engineering?
179 points by conflicted_dev  3 days ago   183 comments top 98
Xephyrous 3 days ago 5 replies      
Why do you want to work at one of the big 4 tech companies? Software engineering is a very big field, you don't need to be really good at solving coding puzzles on a whiteboard to be a good developer. Hell, there are developers who do nothing but set up wordpress sites for their clients, and they're providing a needed, valuable service.

You can work as a web dev at a small company without being part of the mainstream silicon valley rat race. Sysadmin-type skills are pretty hard to hire for, and very useful at small companies. It sounds like you've got that going for you. I'd change your definition of success and focus on finding a job at a company with a culture you'd enjoy, and not worry so much about its perceived prestige.

soham 2 days ago 1 reply      
[Disclaimer: I run a technical-interview prep bootcamp, http://interviewkickstart.com. I also worked at a Big4 of my time. And then some]

Your problem is not with software engineering. Your problem is with interviewing. Don't let anyone (including yourself) talk you into conflating the two.

Technical interviewing process at big4 is optimized for the interviewERs (and the company), and not for the candidate. They have to do that, because their hiring requirements are massive. When you are hiring hundreds and thousands of engineers a quarter, you usually land with the quick, brash process they have currently, despite however well-meaning you are. They can also get away with it, because they have a revolving door of candidates.

Don't let that signal reflect on your software engineering skills. As long as you can solve problems in reasonable time (and 2x is reasonable by many measures), you are good.

If you want to get better at technical interviewing, then use brute-force methods to do so. Find a good source of problems like Leetcode or Interviewbit, prepare a regimen and stick to it. Repeat problems. Do several mocks interviews with something like interviewing.io. You can also use us, of course (http://interviewkickstart.com).

But like others have said, you don't HAVE to go that route. There are companies who do similar level of impactful engineering and make enough money, outside of Big4, who don't have a seemingly depressing interview process.

lossolo 3 days ago 3 replies      
> Concentrated studying and mass interviewing havent led to positive results so far. I can solve most problems correctly given enough time (usually 2x+ longer than interviews).

You are probably here to get some hope. Politically correct it would be to give you that hope because we all know that "Everyone can do and be whoever he want if he work hard". Unfortunately reality is different. Sometimes false hope can make more evil than harsh truth. I am pragmatic that's why i will give you pragmatic answer. You have binary choice. You already know that you struggle with certain things. Give it more time, to the end of the year, so you can determine if the problem was not enough time to learn. If nothing will change then aim lower. If you solve software development problems as you mentioned then you can get into software development.You don't need to work for top 4 tech companies to be happy and solve interesting problems.

danso 3 days ago 1 reply      
I know that there's a huge demand for software engineers, and just about everyone can think of the time their company inexplicably hired someone who couldn't do FizzBuzz. But if you've already been hired as an engineer and you've worked there for 1.3 years, at a level comfortable enough where you actually want to keep being an engineer and move on to a "better" company, and you're willing to put in 10-20 hours extra a week studying, then you aren't not cut out to be an engineer. You clearly have the mindset and tolerance of rigor that the job requires.

But it's possible that you aren't cut out for whatever benchmark/ideal you have in mind for software engineering. If a company is looking for the next Jeff Dean, sure, being not confident in algorithms is going to put you at a severe disadvantage. But there are plenty of valuable and important software engineering jobs -- even within the domain of just programming, nevermind design, planning, management, etc -- that aren't limited to those who can show a mastery of algorithms.

One well-known contemporary example: https://news.ycombinator.com/item?id=9695102

My main job is not software engineering right now, though I do a lot of it on my own (to be better at my actual job). I think I'm similar to you in that I was probably mediocre in comparison to the best of the class, though unlike you, I was probably in self-denial of how mediocre I was. But I eventually got into it much more after working in non-software jobs and understanding how the world works, and that there's plenty of uses for programming beyond the narrow scope of what's taught in CS curriculum. It's equivalent to thinking that you're not cut out to be a writer after feeling mediocre in a journalism news writing class, or technical writing, or poetry.

hluska 2 days ago 1 reply      
Do you like writing code?? If yes, you're in the right field. If no, get the hell out as fast as possible.

Some of the best developers I know couldn't pass a whiteboard interview if their lives depended on it. Conversely, the worst developer I ever worked with absolutely dominated the whiteboard phase of his interview.

If I were you, I'd look outside of the big four. There are plenty of amazing companies out there doing some very interesting things. Hell, I work for a company that I guarantee you've never heard of, but I work on the most interesting problems that I've ever encountered.

labrador 2 days ago 0 replies      
Your title says "Is it possible for someone to not be cut out for software engineering?" while your first point says "Does there ever come a point where it just isn't worth it to continue trying to be a software engineer who can get into top-tier companies / projects?" which are two very different questions.

It'd be like me asking "Is it possible for someone to not be cut out for jogging" and then changing it up to "Does there ever come a point where it just isn't worth it to continue trying to be a runner who can win the Boston Marathon?"

Most of us programmers can't get hired at Google because we don't have the pedigree, the work ethic and other qualities it takes to be at the top of the game. That doesn't mean we don't enjoy and make a living at computer programming.

stuxnet79 3 days ago 1 reply      
You say you've only been prepping from CLRS and Cracking The Coding Interview for the past 1 and a half months. It's not unusual for candidates to spend up to 6 months prepping if not longer. Also, it's normal to be rejected from one of the big four 2-3 times before getting in.

When you say you had to work harder to get the same result, do you mean the programming or the math? In my CS classes I saw really smart kids who were aces in the theoretical aspects of the program but couldn't grok programming. I also saw the reverse. You will have to be honest with yourself and figure out which kind of person you are and if you are willing to put in the necessary work to be 'big 4' material.

My advice, is keep practicing the algorithms, but do so with purpose. Try to tie in what you are learning with what you are doing at work, or a side-project. The essentials will osmose over time. Learning this stuff without having the proper context to understand is value is difficult ... (for me anyways).

ryandrake 2 days ago 1 reply      
Some points:

1. Skill at software interviews seems to have zero correlation with skill at being a software engineer.

2. Being rejected for 10 roles is nothing. I've probably been rejected at a rate 5X that. 10X if you count college recruiting.

3. Despite the "shortage of engineers" meme that constantly gets repeated, competition is fierce. There are a lot more engineers that need work than roles to fill.

4. I disagree with the commenters here dissuading you from interview prep. It's worth it to study up on interviewing and do lots of practice interviews.

Keep at it! I've been out of work for stretches up to 4-5 months. It's not unheard of. It's kind of a numbers game. Do 100 interviews, and if the accept rate is as low as 1% you've got the job!

danneu 2 days ago 0 replies      
I doubt I could get a job at one of the "big four". Their interviews seem mired in hard technical questions, the sort of problems I just don't encounter in the things I build. It doesn't interest me.

Doesn't mean I'm not cut out for software development nor that I can't deliver value to anyone else.

Nor does it mean I can't find a rewarding and interesting job that suits me and the lifestyle I want.

tedmiston 2 days ago 3 replies      
I'm going to sidestep your questions and just remind you that software engineer hiring processes today suck.

Just because one doesn't do well under the extreme time constraints of an interview does not mean they won't do well as a software engineer. Honestly, in fact, I think it can be quite misleading because you have both: (1) good software engineers who work best solving problems with plenty of time to think, and (2) "hacker" style programmers that can whip up something to pass an interview quickly but are not actually good at design pattern and architectural type stuff that separates the software engineer from the programmer. Just my 2.

aboodman 2 days ago 1 reply      
I don't see anything in your question about what you -want- to do. That is the important question to understand.

It's of course possible to not be cut out for computer science, or lawyering, or doctoring, or anything else.

But more than mental horsepower, the most important ingredient is desire. What do you want to do?

Not in terms of "I want to be a programmer because it is a good career" but "I want to be a programmer because I love writing code".

It's very important to deeply understand what motivates you, and what you enjoy doing. This might take decades to fully understand, but you must start now.

If you don't love writing code, you will never be a good programmer. If you don't love helping sick people, you will never be a good doctor.

Find what you enjoy. Start there. Doesn't mean you're going to do that for a living, but you can't proceed without understanding that first. And be patient with yourself. It took me 20 years to realize I was meant to program. You might have to do stuff that pays the bills for a long time while you're figuring it out.

But be honest with yourself, try to listen deeply to what your lizard brain is telling you, and then try to find a way to make that work.

Good luck.

adamnemecek 2 days ago 1 reply      
CLRS is not a software engineering book, it's an algo book. This is a somewhat widespread misconception. Anyway, what language are you using to implement these algorithms? Some languages are much worse suited for doing algo work than others. I always hated implementing even the simplest algos in C or Python but it's actually kind of fun in Swift, Rust and Haskell (the types really do help in cementing your understanding of what's going on).

Also, there was an article yesterday on HN about how the process of mastery is about memorization and repetition https://news.ycombinator.com/item?id=12508776

You should try doing that. Write an algo one day and get as far as you can without looking for help. When you are done check your solution against some correct solution. Do it the next day again and try to do it faster. Repeat a couple more times like next week, next month and before you know it, it will be second nature.

wpietri 2 days ago 0 replies      
I agree with others that maybe you should consider whether working at a fancy company is really the only thing you'd be happy with. That goal strikes me as motivated by social status, not the work itself. I don't think that's a sustainable motivation for a software career.

But I mainly wanted to address the anxiety. Programmers definitely skew anxious; it's a trait that's in many ways beneficial. However, it's easy to let it run away with you. I have been coding since I was 12, and I still regularly have feelings that I'm too dumb to tackle whatever it is that I'm working on. I'm not; I just get uncomfortable when I'm not sure what to do next.

The main way to get past that is by accepting that you have particular feelings in particular circumstances. There's a difference between having a feeling and believing a feeling. If you are having trouble finding that difference on your own, find a good therapist (you may have to go through a few) and work on it with them. At your age I would have tried to macho my way through those feelings, but now I look at that as yet another way I let my reactions drag me around by the nose.

Good luck sorting this out! And thanks for asking such a good question. You've helped way more people than yourself with it.

64ec39bda1 2 days ago 2 replies      
I have nearly 8 years of being a professional developer. I didn't graduate, and got into the industry while in college before dropping out. So there are some differences between us in years in the industry and educational credentials.

First quarter 2016, I was laid off from my job as the first engineer/tech lead of a small startup. I have been searched ever since then, and your experience mirrors mine exactly. I have been on over 25 in person interviews and gone through untold degrading whiteboard interviews, code tests, trick questions, and take home projects; all have ended in rejection. This industry has a need to torture candidates because we are all considered to be liars by default.

Much is said about combating impostor syndrome in ourselves but we are too eager to cultivate it in others. It seems people in this industry refuse to understand that some people are not perfect. I never graduated college because I hated it with the very fiber of my being, so I am, like you, not particularly great at white boarding answers to algorithm questions off the top of my head in a high pressure environment. If I need them during my job, I look up answers and learn from people who are much smarter than I am.

My personal identity has been shattered, as I thought my ~5-10 year history of success in the industry indicated I was in demand and talented. I saw posts like this and thought that if the worst happened I'd still be able to find a job. The idea that there is a talent shortage is a lie, or candidates like me wouldn't be treated as I have been. I'm not asking for a free job, or a handout, or a huge salary. I have had a successful career so far and am capable of doing good work.

I have struggled with bipolar disorder and suicidal ideation most of my life. I've dealt with the death of beloved family members and pets over the past two years with only minor lapses in control. Nothing has caused me to consider taking my own life as much as the past 6 months. It seems there is no future for me in the only career I have any skill in and which is a huge part of my identity. And to constantly be told that there is such a shortage of engineers only salts the wound.

If you are expecting things to get better with experience, they won't. It's up to you to decide if you can take the mental strain of continuing in an industry with such inhumane hiring practices.

ChemicalWarfare 2 days ago 0 replies      
Start elsewhere, there is a reasonably high demand for software engineers out there, get a job and go from there.

I've done some reasonably complicated things in my programming career (things having to do with encryption, threading, high volume systems) but I'm sure I'd fail a Google-style CS drilling (and have no interest in implementing a non-cyclical direct graph on the whiteboard :)).

Guess what - hacker rank type challenges I'm semi decent but not great at.

I do pretty good with take home mini projects though and with interviews where even if things get theoretical they are still relevant to the actual day-to-day, like let's say describing the thought process behind selecting a linked list vs arraylist for a given situation etc.

Imo these things come with experience, so again if your goal is to get a job with "google" eventually, start elsewhere, get the chops and go from there.

atemerev 2 days ago 1 reply      
1) passing job interviews is a skill orthogonal to coding abilities. You might want to get a book and start training on that.

2) I failed Google's interview 6 times. OK, so I don't work at Google, but I am still a decent software engineer loving functional programming and distributed systems.

ocean_blue 2 days ago 1 reply      
I am a recent college grad and I started interviewing pretty late. I never did an internship while in school and have had a grand total of four phone interviews to date and two onsites(Google), resulting in one job offer(with a decent tech company). I think tech interviews are beatable. Here's my hypothesis/strategy: --> The "problem solving" part favors people with an aptitude for math but I think that this is a skill that can be acquired. I presume that you have an understanding of all the basics including graphs and Dynamic Programming. Doing mass interviews/concentrated studying might not help here. I would recommend a style to you: Start with a problem and solve it in 45 minutes. Then look for a similar problem(within similar domain) and try to solve it 40 minutes. Then push yourself until you reach about 20 minutes. Shift to another domain and repeat the process over and over again. The idea here is to practice for interview just like you would do for a math exam. You should never trip on the basics e.g code syntax, or understanding what data structure to use etc. Also problems belong to certain domains and this strategy of repetitive training develops the intuition to categorize a problem. Finally, 1.5 months might not be enough. I would recommend about 3 months of studying as you understand things better over a long period of time --this is why cramming never works. All the best
thecolorblue 3 days ago 1 reply      
For me, interviewing is the worst part of being a software developer. Now that I am a little more senior (5 years experience) I can see that its pretty miserable doing the interviews as well.

There are plenty of reasons that I haven't gotten a job that had nothing to do with me, for example, the CIO already had a third party ready to do the same work or they already had someone at my level of experience and focus.

The only thing that has worked for me is focusing on what I have done, and look for companies that also need those problems solved.

oliwarner 2 days ago 0 replies      
Of everything you've said, nothing suggests you actually like programming. I think that's most accurately reflected in your description of how much a chore you find algorithms. That's a pretty serious issue.

I don't think I'm alone when I say problem-solving even if it's not novel in an efficient way is something most software developers live for.

Part of this is learned and honed with experience. Part comes from a drive to solve [any] problems, even simple puzzles. I truly believe you can learn everything there is to know about programming, but if that's not your passion, you're never going to thrive.

To answer your questions:

1. Your aim to become a top-tier company programmer will never happen at the moment. They only hire passionate programmers who love their work. You can't expect to be hired and then get passionate.

2+3. Stop focusing on study and GPAs. That's done. BUILD SOMETHING for yourself to get some experience doing something you have a vested interest in, not under test conditions. Improve it. Ask other people how you can improve it.

Once you have something that's yours, you might be able to display some passion in an interview (as well as having gained some "real" experience).

If you can't muster even that much enthusiasm for the subject, perhaps it's time to look elsewhere. It's not for everybody.

fsloth 2 days ago 0 replies      
Your original header and the content of your question do not match. I've been a software engineer for 10 years, enjoy my job considerably and been commended for it, but am not working for the big four or a cool startup.

I can't give you any other advice, except for my personal satisfaction the team I'm in and the domain of the problems I need to solve weights so much more than the specific company I'm working for.

For the technical interviews I've participated, I've always sucked ass. But guess what - those tests don't correlate with success at the actual work any way. They are a gate, but a bit arbitrary one at that. Yes, one needs to understand all that stuff, but can solve them at ones own pace - algorithmic puzzles usually take only a fraction of development time unless the situation is most unusual. If you can solve the problems, then from practical point of view it's sufficient.

On learning techniques, Barbara Oakley's "A mind for numbers" is an awesome book. I'm 36 and I wish I had read it 20 years ago. Slow is not bad, if correct methodology is used to verify learning. Slow can be deeper. Barbara also suggests some techniques for dealing with test anxiety - which I've not tried myself, mind you.

As per yout goal, I'm afraid I have no idea what is possible and what is not - people are complex and unpredictable. But as a senior software engineer, from the point of view of theoretical capability - if you understand the problems and can solve them at your own time, that's quite sufficient.

huherto 2 days ago 0 replies      
> 1.) Does there ever come a point where it just isn't worth it to continue trying to be a software engineer who can get into top-tier companies / projects?

Don't just look at the top-tier companies / projects. There are many projects/companies where you can learn, grow and contribute.

> 2.) How can I find some positive reinforcement in interviewing / interview prep even if I constantly get rejected? I do perform post mortems on every interview in order to find areas to improve.

Are you getting a positive reinforcement when you are doing software engineering ? That is the key question. If you do, you can have a very satisfying career. Even if you don't work at google.

mrweasel 2 days ago 4 replies      
I would seriously cut the interview prep crap. It's useless in my mind. You're the person you happen to be, and that's the person that need to walk into an interview. Never prep for an interview (other than of cause figuring out what the company does and if you'd want to work there), you'll just try to remember the prep and not focus on being at the interview. Most interviewers only care about who you are, and ensuring that you didn't lie on your resume.

If you want to make difference, find a small business, no more than 30 to 50 people. The kind of company that wouldn't except a person like you to walk in the door.

johnward 3 days ago 1 reply      
I'm not an engineer but I'm am a tech consultant. First, there are options outside of engineering that you may like. Second, being rejected by 20 companies doesn't seem excessive to me. It really is a numbers game. I have 10 years of experience and I'm looking a list of 83 places that didn't want me within the last year. Interviewing really beats me up and makes me feel like I have absolutely nothing to offer.

Companies focus on these code puzzles and things even when you will literally never come close to that level of code in practice. I mean, I can't even complete the screening challenges Uber gives you but I still found something I can do in the industry. If you are applying for some senior engineer position than you probably need to know this stuff, but if you are looking for a junior role than I really doubt the value of these.

Honestly, I question if I'm cut out for the work I do still. I sometimes just want to walk away from tech and never come back. Today is one of those days that I am questioning WTF I am doing with my life.

bazaroni 2 days ago 0 replies      
1) The answer to that needs to come from you. If it's important to you to work at a "big four" tech company, it's probably possible with enough effort.

2) I think most people in industry realize that interviews don't really correlate well with how well people actually do their jobs. So I wouldn't take rejection too hard. It really is strange that in interviews we test for "can you figure out a non-trivial problem in the time it takes for me to eat a sandwich" when most software engineering roles are more along the lines of "can you work well with others, generate and document clean/functional code, and learn what you need as requirements change".

3) For most things, the best way to get better at something is to do more of it. Interview every single day. Hopefully over time you will get better at it. If you don't, consider seeking help with your performance anxiety. That might help.

Best of luck! :)

wasd 2 days ago 0 replies      
There's a lot of good feedback here for both sides. The only thing I want to reiterate is that success isn't defined by employed by the big four. There are companies that embark on more interesting engineering challenges or pay more. Big four is a measure of status, not success. I don't think you've defined what you want well enough to quit because you're not being hired by the big four.
muzster 3 days ago 0 replies      
More Questions Than Answers :

1.) Why top-tier companies ? Have you considered joining a startup instead ?

2.) Ask the interviewer. Prep'ing for interviews will not prep you for the work at hand. Try working on your interpersonal skills and getting real world experience ( open source or side project demonstrating your skills )

3.) The recruitment process is broken. When you find that elusive efficient way - make sure to give back to the community.

riboflava 2 days ago 0 replies      
Practice your softer skills for interviewing. Do you get anxiety over other aspects of the interview, like the fact that there's an interview itself? Work on that. Many times candidates get hired even if they bombed some aspect of the technical portion of the interview, for various subjective reasons. (Also consider asking for a take-home problem where they give you 2 hours or whatever to email back the solution. It can help if that is solid but your on-the-spot whiteboarding is shaky.)

Also consider an SDET role, those can sometimes be easier to get and then you work internally on removing the T if you really don't like that sort of work.

plinkplonk 2 days ago 0 replies      
The combination of "I am REALLY bad at algorithm problems and experience serious performance anxiety." and "My current target is a role at one of the "big four" tech companies " seems to be at the root of your troubles. The 'big four' interview processes are heavily focused (for better or worse) on whiteboard algorithmic problem solving. You should change one factor or the other to make progress.

My 2 cents.

amorphid 2 days ago 1 reply      
I suck at studying. It's boring, I have a short attention span for words on a page. And I'm not a good listener, so someone explaining things to me verbally is the fastest way to fill my brain. I used to try learning this way, failed miserably, and then told myself I couldn't be a programmer.

I'm good at grinding away. I'll bite onto a something I want to learn and not let go until I frikkin' get it. I learn with my hands, by asking questions, and staring at the screen until it makes sense. I've learned to push through it, and just write crap tons of crappy code until I come up with something interesting.

As recently as a couple years ago, I had a hard time finding ANY work as a developer. 6 months ago, I finally landed a dev gig that doesn't suck, and my coding mojo has been skyrocketing ever since. I've had code merged into the Elixir code base, I've got another PR waiting to be merged into Systemd, and I'm accidentally discovering use cases for those algorithms that bored me to death when I tried studying out of a book.

If you want to chat, my email is in my profile. I was a technical recruiter for 9 years, and now I'm Sr. Software Engineer (at least in title!). If you have some foundation level skills, there are plenty of ways to hack the interviewing process.

Good luck. If you can't climb someone else's ladder, build your own.

Ologn 2 days ago 0 replies      
Being on the other side of the interview table is helpful for perspective. You might even experience this if your team is hiring for a position and wants you to look over resumes, do phone interviews, in person interviews etc.

If I interview six people for a position, usually one is really good, four are average, and one is really bad. Guess who is getting the offer? It's almost a paradoxical thing - being average is good enough to keep a job, but you have to be in the top 16% to get a job. Lucky for you, the above average interviewer usually gets competing offers, so that leaves the less attractive job slots open.

If you take six random programmers with a CS degree and <2 years experience, are you the best of those six? If not, you're one of the four average ones, and are not going to pass most interviews unless the market is hot and they desperately need you or you have a friend bringing you in who vouches you can do the job.

You also say you want to "get into top-tier companies / projects". Well, that doesn't mean being one standard deviation above the mean, it means being two standard deviations above the mean.

So now you don't just have to be the one in six that sticks out as good, you have to be the one in fifty that sticks out as great. You know those one out of six quality tier guys I talked about? Now you're competing with just them, and you have to be the best among seven or so of them for the job.

When I was studying CS, I was once assigned to write a homework on the process scheduler for Linux, Mac and Windows. Within 20 minutes I'd know I would have an A on the paper - that was all the study into the subject that was necessary for that mark. But then I continued to read about process schedulers for the rest of the night, because I always wanted to look into it, never really had, and if I was ever going to do it, I knew then would have been the time.

I'm not like that all the time in terms of devotion to learning CS, but if I was, I would have a shot in being one of those two standard deviations above the curve programmers. Because that's what they do, even after they know they got the A on the paper, they keep reading even if it takes hours just so they really know and understand the subject more fully.

JeremyMorgan 2 days ago 0 replies      
There are people who aren't cut out for it, for sure but it's probably not for the reasons you think.

In my experience those "not cut out" for software engineering who struggled did so not for a lack of intelligence or learning ability, but lack of desire.

To succeed in this industry you need either be:

1. A "Natural": rare but real people who learn things so fast they don't put a ton of effort into it. They "get it" very quick and find a way to keep current and continue learning ahead of most within their 40 hour week. They spike on something for an hour, comprehend it and retain it.

2. Everyone else - You'll need to work your day job and learn the most you can, and go home and learn more. Experiment, go through walkthroughs/tutorials/courses and consume information. On your own time. Constantly seek out new technologies and methods, build side projects to learn.

Those are the two types I've seen, and I fall into the latter category. I could never be at the skill level I'm at now by just showing up to work. I have a lot of outside of work tech activities and I'll be the first to admit there are many concepts I don't "get" right away. But I keep trying because I'm having fun. The end result isn't as fun as the experience for me.

Of all the people I've worked with in the last 20 years, most of those who gave up were in the same camp as me but either didn't enjoy "having to learn" something, didn't have the personal time, or just didn't want it bad enough.

I know this isn't the most sunshine and rainbows answer but it's the truth. Look inside yourself and ask why you want to do it, and how bad to you want it. Really ask yourself the question "why do I want this?" and be honest with yourself.

For me the answer is "I love building things and solving puzzles" and I want it bad enough to sacrifice a lot for it. When I imagine something abstract and piece it together into something it feels nice. The money is great, but it's not my primary motivator. This may or may not apply to you but if you're passionate and you love it, you will succeed and it will get easier as time goes on. I learn things about 5x faster than I did when I was 2 years out of college. You will too, if you want it.

If you aren't that passionate about it, start thinking about something that makes you feel like you HAVE to succeed at it, at any cost.

osivertsson 2 days ago 0 replies      
Rejected by 10 different roles when you only have 1 year of experience is normal, as is being rejected by 20 companies during college. I've done (far) worse, and I'm still in this industry after 10 years and enjoying it.

If you spend 1-3 hours per day on interview prep you are overdoing it.

Stop it, spend your time doing something else that will benefit you in more subtle ways in the interview and in everyday life, like:* Get in better physical shape (take a walk! go dancing! lift weights! bike around town!)* Hang out with friends, or try to get a new friend by putting yourself into a different environment than you usually are in.The point is to clear some of the anxiety and stress that you now seem to carry, and go into an interview with more confidence and more relaxed.

I too suck at algorithm problems. It is mostly because I fail to see the relevance to the work I want to do, which is to build great software with other devs that want to do the same. The 2-3 times during my career when I've really been confronted with problems that require some clever algorithms to do this, then all of a sudden it becomes very interesting and keeps me up at night.

So perhaps algorithm problems at the whiteboard during the interview is not your strength. It is surely not what the job you are interviewing for is really about either.Just be honest during the interview that you find these situations awkward, and that you perform much better in a real work environment.

Explain what value you think you can deliver to the employer. It might be that you get things done with quality without over-engineering for the future, that you have a solid linux sysadmin background and canhelp out in a web dev team with these skills, and that you have experience of what works once things are deployed. Or maybe that you really enjoy working close to customers, or that you are the go-to-guy when it comes to tool XYZ, etc.

First and forement do a good job were you are now. If your goal is to get into a top-tier company then accept that you may have to change employer 5-10 times before you get there. You must always focus ondoing a good job at your current employer, since the more years in the industry you have, the less algos at the whiteboard during interview counts, while contacts and your reputation starts to weigh veryheavy.

Best of luck!

(As always when answering these kinds of questions you really are shooting from the hip because you have so little information, compared to seeing/knowing someone in real life...)

jwatte 3 days ago 0 replies      
Is everyone cut out to be an Olympic athlete, or are some genetics involved?The answer is "it's a mix."

Can anyone with diligent work ethic and a continual effort into learning find some place that needs their skills? Very likely.How well does your skill set match how broad a market? It depends. If you are narrower, or aim higher, it will take longer to find a match.

That being said: if you have sysadmin skills, have you considered an SRE position? Or DevOps?It may be that you find a better match there.

xt00 3 days ago 0 replies      
Interviewing is a special skill. I would try practicing it with real people (if you haven't already), and to actually implement the algorithms you are struggling with in real-time with your friend that is "interviewing" you. Basic point is that you need to spend some time practicing like crazy where you have the ability to "fail" with friends. I have done a ton of technical interviews, done a qualification exam for my phd (twice :-) ), and its hard. You have to learn how to improve your speaking capabilities, and know the material well enough so that you can speak confidently. Basically if you feel like you are winging it, then you don't know the material well enough. If you feel like you know it, but then "suddenly" forget the info, then that is basically like stage-fright, and you need to practice with people like crazy. Another method is to create like 10 questions that are annoying questions that you can imagine somebody asking you. Then save them someplace. Then on a random Friday afternoon, pull out those questions, get a blank sheet of white paper and sit down and "answer" those questions without looking at a book, and time yourself as you do it. I would not give up, just keep trying.
contingencies 2 days ago 1 reply      
Big companies suck. They stifle you creatively, make it difficult to learn or find a challenge, and tend to surround you with people who have a conservative mindset. You will rarely be exposed to all aspects of a business, rather only to the pigeon-hole you are assigned.

Find something you enjoy, work on it, don't worry what other people think. People that you want to work with tend to care more about your attitude, confidence, personability and capabilities rather than paper or formalisms. As long as you are learning and pushing your boundaries, you are not wasting your time. Keep applying for different smaller businesses in your area or that you may be interested in: also, in many countries employers may let you come on as a 3-month lower-paid intern then up your salary when you prove your skill.

It seems you have reached a point where you are doubting yourself: this is healthy, but give yourself a break! Look at all you have achieved, focus on the parts you enjoy, and worry about planning a career path after a job or three.

rckclmbr 2 days ago 0 replies      
It took me 8 years of industry programming (after college) to get a job at a top tech company. But I'm here, and I feel like my skills are a lot better than they were. Don't get down on yourself by getting rejected, and don't invest too much time in interviews. Take 1 or 2 a year, and just concentrate on being a better programmer and person.

1. No, but you should evaluate how much time you invest in this. (time per year)

2. I hated every time I got rejected. I never did postmortems myself, but swore I would never interview at another BigCo again. But guess what kept happening.

3. I never found a mentorship useful. The best way is to find where you're deficient (which is hard, because companies almost never give feedback). I don't think post-mortems is the right way to approach this -- look at different ways companies evaluate someone (tip: it's not always just the code you write), and see where you can do better.

I'd be happy to answer ad-hoc questions you have -- maybe it would be better to provide suggestions by understanding of your particular circumstances.

slowrabbit 2 days ago 0 replies      
I have problems with interview anxiety too. Fortunately, you don't need to be good at interviewing or algorithms to be a successful software engineer. I think a lot of the good companies realize good interviewing skills and good programming skills don't go hand in hand. Interview practice can be helpful, but my suggestion is to get into actively developing open source software and add significant code contributions to projects. People care about actual code you have in production, contributing to major open source projects is an easy way to get your code in production and tested across millions of servers. The kinds of companies you ultimately want to work for care far more about what you have actually done code-wise outside of the interview far more than any trivial test they could possibly give you in an interview. If your contributions are significant enough, companies stop asking you to do those lame technical interview tests altogether and just hire you.
raverbashing 2 days ago 0 replies      
So what you can't get into the big 4? There are several companies with interesting problems AND a bigger chance for you to actually make a difference.

Rejections happen. I would try to see if there's a common thema (some area of knowledge that is missing) or if it's just being nervous/lack of experience

Not everybody is good at algorithm problems and there are other areas you might be better suited for

andaric 1 day ago 0 replies      
I think you already have enough technical skill to be a good engineer. Like others and even yourself have said, the problem is the interview.

What kind of post-mortem are you doing? Are there particular types of questions that give you more trouble, e.g. tree traversal, recursion, bit math, data structures, OOP concepts/design. If you're having a hard time figuring out what algorithm or data structure to use, you may have to get more familiar with common algorithms, like graph traversal, BFS/DFS, recursion, etc. Once you know the basic algos and data structures, they become your tools and building blocks to solve a problem.

If speed is your issue, you'll need to practice solving problems to train your intuition to come up with working solutions quicker. You will start to recognize problem types and the algo and data structure to use.

Also, being familiar with common data structures like lists, arrays, hash maps, trees and graphs is essential. Know their runtime and space complexities, so you can know when to use what.

Sites like hackerrank are good places to get practice questions.

Hope this helps.

dkarapetyan 2 days ago 0 replies      
Feynman has a really nice quote I think that is encouraging for someone with your experiences

Right. I dont believe in the idea that there are a few peculiar people capable of understanding math, and the rest of the world is normal. Math is a human discovery, and its no more complicated than humans can understand. I had a calculus book once that said, What one fool can do, another can. What weve been able to work out about nature may look abstract and threatening to someone who hasnt studied it, but it was fools who did it, and in the next generation, all the fools will understand it. Theres a tendency to pomposity in all this, to make it deep and profound. Richard Feynman, Omni 1979

I agree with the sentiment. There is much pomposity in the software engineering field and the usual interview process is more like a hazing ritual than an interview so being stressed out about software interviews in general is the correct response.

It sounds like you are a persistent and hard working individual though and those characteristics will serve you far better than being good at algorithms and software engineering interviews. My favorite quote about persistence and hard work is from John Ousterhout

A little bit of slope makes up for a lot of y-intercept

CS140, 01/13/2012From a lecture by Professor John Ousterhout

Do not despair and continue improving. The job part will happen on its own. Trust me, you don't want to end up somewhere that values reciting topics from undergrad CS 101 over the kind of disciplined and hard working attitude that you clearly demonstrate.

The relevant links for where I found the quotes: http://duncan.mkz.com/what-one-fool-can-do-another-can/, https://www.quora.com/What-are-the-most-profound-life-lesson...

kearneyandy 2 days ago 0 replies      
Interviewing is a skill like all things. The more you practice the better you will get at it. Unfortunately, this process can be slow and the worst part is that when you interview you don't really get any kind of feedback from the company about why they rejected you.I'm working at a startup in this space refdash.com where you could go do a technical interview and get some feedback from the interviewer on how to improve. Perhaps the problem is just that you don't know what the interviewer is looking for or what strategies to use to feel comfortable in an interview.

The other thing I'll say is that the "big four" companies are glamorized a lot, but each have their own issues. I would say focus more on the fit than the name.

Other tools that are nice are leetcode and hackerrank for practicing. They can offer positive reinforcement because you can see how you are able to solve problems and keep track of your success on those.

alistproducer2 3 days ago 0 replies      
I don't think you are cut out for a job at the big tech companies simply because they do put so much weight on discrete math and puzzle solving.

I say this as a person who is pretty much in the same boat.

kozikow 2 days ago 2 replies      
I feel like algorithmic interviews are starting to be a red herring. When we are reaching a point that people need months of preparation and special interviewing bootcamps, we start to experience something akin to Goodhart's law. Correlation with real world skills get smaller and smaller, as people stop honing their "real world" skills and focus their energy on gaming the artificial metric.

Many companies are starting to value good github profile more than "how quickly are you going to implement the dijkstra algorithm on whiteboard". I believe this trend is better for candidates and companies, so it will continue.

I am speaking it from the point of someone fairly proficient in algorithmic challenges and algorithmic interviews (e.g. top 100 google code jam, worked/interned at 3 out of big 4).

dougabug 2 days ago 0 replies      
1. If you love writing software, don't give it up just because you don't fit into the existing mono-culture of "top-tier" tech companies. Recall that WhatsApp's founders were both rejected by Facebook, but still managed to build a game changing company that Facebook later bought for ~$19B.

2. Find an interview coach or service that suits you and can help you improve by giving you detailed feedback and concrete advice. The cost of professional help is noise compared to developer compensation. Reward yourself for steady, incremental progress, don't beat yourself up for not being at a specific level yet.

3. Take classes on algorithms and data structures until you can solve problems cold. Master key topics, don't settle for incomplete understanding of your craft. Be curious.

hkmurakami 2 days ago 0 replies      
Yes, some people are naturally bad at the big 4 style programming interviews. I know several great engineers who lead leads at startups who have had difficulties in such settings.

I myself had a terrible time with McKinsey style case interviews, which is sort of a cousin to tech interviews.

DjGilcrease 2 days ago 0 replies      
"- I am REALLY bad at algorithm problems and experience serious performance anxiety. Concentrated studying and mass interviewing havent led to positive results so far. I can solve most problems correctly given enough time (usually 2x+ longer than interviews)."

I am a principal engineer at a mid size (~4k employees) tech company (F5 Networks), and if someone asked me to do a bubble sort, or other algorithm from memory I would end the interview there, and have. The CTO at a company I was interviewing at asked me to do bubble sort in less then three minutes, I said no, lets just end the interview loop here. Google almost always asks a pure memory algorithm question, though they have been getting better at remapping the algorithm solution they want to actual work they are doing.

As an interviewee the ability to write out some random algorithm from memory, that I could just google for tells me nothing about the type of work I would be doing, how I might fit with the team, how the team thinks and collaborates.

As an interviewer I never ask this type of question since it does not tell me anything about how you think, work though problems, and collaborate with others. I always try to tie my technical questions back to problems I have had to solve in the past two or three months.

For a Software Engineer of any level your ability to think critically, ask the right questions, and work with others is way more important then your ability to bang on the keyboard in the right order. Syntax and idiosyncrasies of a language can be taught to just about anyone who can think critically and knows how to collaborate with others.

"Does there ever come a point where it just isn't worth it to continue trying to be a software engineer who can get into top-tier companies / projects"

Not if you enjoy doing it. If you do not enjoy it and find the work a constant struggle that you dread facing every morning, then move on to something you enjoy.

Also "top-tier" is rather subjective. I will never work for Google or Amazon. I would prefer to enjoy what I am doing, be able to have a life outside work, and get paid more (At least compared to Google and Amazons average pay in Seattle for the same role).

DanielBMarkham 2 days ago 0 replies      
When you're looking for work, you enter the marketplace with a certain set of skills and experiences.

As you interact with the market, you're supposed to be understanding better what sills and experiences you should have had. Then you start gaining new skills and experiences to match the market.

If your market is so small as to only consist of a few name-brand companies? Your sample size is way too small. This is a numbers game, and you need to play the numbers -- not try to mold yourself into some candidate some arbitrary set of companies would like. Quite frankly, it sounds like a fool's game.

You're a smart person. Play the game according to your rules, not theirs.

ErrantX 2 days ago 0 replies      
Forget practicing the tech for now. Sure it might be where you "fail" but it Sounds like performance anxiety is what is holding you back; work on your confidence in interview settings. Apply for jobs you'd never take (I mean, non tech jobs where you are sure to get an interview) to give you more practice in these settings.

I see this sort of thing in newer engineers we interview. It's the thing that makes it hard to get to the root of how good someone is.

Right now the sort of challenges the big 4 are setting might not suit you. You might need more experience elsewhere; that's okay, you've got a year as a SE, wirh some good previous background: the future looks bright. It does take a while to get there. I measure myself as successful; at 29 I am a well paid engineering team manager at a largish firm. We do cool tech and I get to promote Devops. 8 years ago I was on a cruddy wage doing very little engineering - but learned loads that set me up for success. Focus on what you can learn right now to make yourself better, add things in increments, don't burn yourself out looking for the shortcut. Most of all don't fall for the hype; there is so much more than the big 4 or a start-up, and they do good engineering too!

feelix 2 days ago 0 replies      
>- I am REALLY bad at algorithm problems and experience serious performance anxiety.

For me this is the key sentence here.

Don't worry about feeling like you had to work harder than everybody else during college, that is called imposter syndrome and it's normal.

As for the performance anxiety on technical stuff, I had the same thing. I was even barred from being allowed into programming courses, that I would have to pay a lot of money for, because I failed the aptitude test. I went back in days later and I demanded to retake it after failing and was allowed, and did even worse on the same test.

So I had crippling self doubt. Then given a few years to work on my own stuff, I taught myself C and became the most prolific developer (my work is linked to in other comments I've made on HN if you want to check it) I know churning out loads of awesome software. I even got into kernel hacking in C and stuff. I still don't know if I'm inherently clever or even a good programmer, but I do know I've achieved good results. I think if you're passionate about it you'll find a way to create what is important to you, even if it's very technical.

NikolaNovak 3 days ago 1 reply      
Hmm, few notes & questions:

- Being cut out for software engineering activities; vs software engineering career/success, may be different skills and concepts. You could be good at development, system administration database administration; without necessarily being good at succeeding in any particular type of company culture or organization, applying those skills. Which one is your question: can a person be "not cut out for software engineering", or can a person be "not cut out for success at particular type of company as a software engineer"? [I would give the answer for both a "probably, in principle, but less often than assumed].

- You mention some of your perceived history of effort, success, and lack of success. What about more personal stuff - do you ENJOY the work? Are you attracted to software engineering (however you see it - development, sysadmin, etc)? Would you dabble with it even if you got a job in an unrelated field?

- Do you have a specific filter you might or might not be aware of? Are you seeking specific types of jobs in specific types of companies under specific constraints?

- Do you have friends you trust in similar professions, or with similar interests? What do they say?

- How about colleagues, classmates, profs?

- Number of failures at obtaining jobs is a metric but not a predictive one without context. Skill at interviews is not the same as skill at software engineering is not the same as skill at organizational success.

- Similarly, you may have _perceived_ to be working harder at college; you may have _actually_ been working harder, due to your higher standards; you may have been working harder but _not_ receiving the same results as others - without full understanding I would not automatically put full weight in your perception of relative work.

- Top Companies and Top Projects may not have one-to-one ration. Why do you think you want/need to work for those particular companies? Are you interested in prestige of the name? If not, what is your true interest - type of work? Team culture? Accomplishment? Paycheque? Write a list of your actual priorities, be brutally honest with yourself, and see how they match with those "top-tier companies".

- How would you perceive your skillset at large? Your communication skills, people skills, friendliness, dependability and reliability, loyalty? Personally, I look for a reliable willing learner on my teams more than somebody who can solve puzzles but will cause havoc - different companies have different fashions however.

Either way, best of luck :)

jauer 2 days ago 0 replies      
Taking this in a totally different direction...

Have you been evaluated for ADHD? (PsychD with the long paper test & blinky box with clicker, not necessarily MD with the "Ask your Dr about Adult ADHD" screener).

You might not have the stereotypical symptoms of ADHD, but the executive function hit (and unconsciously compensating for it) can lead to symptoms that resemble a lot of the things you mention in your background: feeling like you have to work harder than classmates, having issues with algo problems, performance anxiety, and needing 2x more time on some problems.

I mean, aside from school, you are clearly smart enough if you can do full-on sysadmining (debug and solve problems, not just follow tutorials) and use code to solve project euler problems. Why not make sure you aren't handicapped in a way that's totally treatable?

Of course, this could also just be graduate nervousness and insecurity that can be overcome with practice and experience, but I wish someone had mentioned this to me when I was mid-college so I'm mentioning it.

Disclaimer: I am not a medical professional, this is from personal experience and comparing notes with coworkers with ADHD. YMMV.

jwiley 2 days ago 0 replies      
I graduated during the first dot.com boom, and decided to transition from Economics to web developer. I got a job at a small company, with minimal programming knowledge. My programming test was explaining how a Perl program I wrote worked.

I certainly wasn't a great engineer, and I have never been a natural programmer. But the company I worked at realized that they didn't need the top 1% to build basic enterprise software. Paying a kid out of college 1/5th the salary of a top 1%er, and who a maniac about learning, was pretty attractive to them.

The barrier for you guys is so much higher now, and it's a shame. We need you. We really, really need you.

I think the real question is: do you like building real applications? Algorithm questions are wonderful intellectual challenges, and useful background knowledge. But most engineers I know spend 90% of their time figuring out why something wont compile, trying to integrate with crazy APIs, or dreaming about how new technology X will fit into the stack. Worrying about whether the hash table Java uses is O(n) or O(1) is very low on my priority list, and something hard to justify to bosses and customers who care about a shipped product more than microseconds of optimization.

Take a break from programming if you can. Get a job in retail, and experience a different form of suffering for a while. Or join the Peace Corps. When your brain gets rested, find an open source project that interests you, and contribute to it. If you can't find one you like, or find that it bores you to tears, consider another profession. There's no shame in that, the world needs doctors, lawyers, chemists, business people and barristas as well.

deeteecee 2 days ago 0 replies      
Having trouble with interviews isn't a big deal, it's just a grinding process. What I do personally is think through issues I had myself while going through the problem. Not necessary but you could also see if with the post-interview results, you can get any possible feedback from the interviewers themselves.

Performance anxiety is just something you have to get used to dealing with in some way. You can always just ask questions during the interview.

grahamburger 2 days ago 0 replies      
Consider that it can be easier and often more rewarding to be a good software engineer in a non-software field than a good software engineer at Big4 - you can make major contributions to other fields even as a mediocre software dev because you're not 'competing' with the best of the best. Take up a position as a software dev in a field that has not yet been eaten by software and ride the wave to the top.
kmonsen 2 days ago 0 replies      
I matured as I get older, don't feel too harsh about yourself because of where you are know.

I think the most important part is if you are interested in software engineering and find coding fun.

Life is long, and you have many, many years to get "successful" still. But there is a large chance you are more successful than you think.

As for tech interviews, it is a skill that can be learned. Things like hackerrank.com, but also just getting more work experience helps.

elizabethanera 2 days ago 0 replies      
>My current target is a role at one of the "big four" tech companies or a high-quality startup doing either webdev or infrastructure engineering.

You're shooting high and dissatisfied that at 1 year out of college you're not 'there' yet. Regardless of your interview performance or speed with tech challenges, you're still a 'junior' (not a great term as it can seem insulting, but it's what the industry uses) engineer.

Your question is more "Is it possible for someone to not be cut out for super-prestigious software engineering?" Which is much different. If you want it you're going to have to work hard for years. Wanting it for the sake of the prestige (which is the vibe I get from this post, sorry) is not enough.

Why do you have this "if I can't make it there, it's just not worth doing" attitude? Do you have to be heads above most engineers in order to feel ok about yourself? Listen: all around the industry people need software engineers. Serve your purpose as a diligent engineer.

Just: do good work. Then do more of it.

DrNuke 2 days ago 0 replies      
Your best shot may be finding the way to use your knowledge in a field you are really passionate about. In fact, it seems to me you are just hanging yourself at some sort of cerebral tree while cutting passion out. That way, you will always work harder than your peers and get less and less satisfaction. Use software engineering as a tool to achieve applied goals.
random_coder 3 days ago 0 replies      
To me, it looks like you're just having problems with algorithm interviews. I have a solution for you and it's much more effective than textbooks - go to websites like www.spoj.com, projecteuler.net, topcoder.com and many other similar online sites, I suggest www.spoj.com - start with the easiest ones (on most of these sites, problems are tagged by their difficulty level) and solve them - I mean code solutions to them in a language of your choice (But C, C++ and Java are popular in interviews) - these sites have online judges where you can submit your source code, have your code run against a large suite of test cases for each problem and get results back - all in a matter of seconds.

Solve 100s of these problems(start with easy ones and move into harder ones at your ease, learn new concepts and algos as you go) and try the interviews again in another 6 months. I promise, you'll improve a lot at this kind of problem solving. I've seen a number of people do this and succeed at algo interviewing game.

NumberCruncher 2 days ago 0 replies      
If a decent B.Sc. degree in CS and 1-2 years of real-life experience would be enough to land a job at the "big four" than 99% of academics would work for the "big four".

In my country it is really hard to get a decent job without an M.Sc. I know a lot of people with two M.Sc.s in their pocket (this means at least 1 B.Sc. + 2 M.Sc = 7 years of academic education, like myself) speaking 1-2 foreign languages and having 6+ years of real life experience at the age of 30. And some of them would like to work for the "big four", and maybe in your country. Whether you like it or not you compete with them.

[edit] One of my friends who is IMHO a genius got a job at Google in Zurich and he had a hard time at the beginning.

rogy 3 days ago 0 replies      
Not everyone is the same, there are a lot of people who come straight out of college to the big companies who end up not being incredible software engineers. And vice versa.

Not everyone can prove their real skillset to the Facebooks of this world in an interview, with very little SE real world experience. You don't need to aim so high to enjoy your job and learn a lot.

timwaagh 2 days ago 0 replies      
wow you sure dream big. i would not know anything about joining a big four tech company. but it seems like you went up from system administration to developer. congrats on that. I think you have worked hard and you are doing very well for yourself. Of course learning to get better at interviews is going to yield results sooner or later. So keep doing that. there will be one day when somebody gives you an offer at a higher salary because of this.

I don't know whether joining the creme de la creme of the industry is possible for somebody who has some trouble with algorithms and the like. it seems a pretty essential differentiator. I'm not very quick when problems get harder as well. But you know whatever. i still eat and i own my home.

fapjacks 2 days ago 0 replies      
Please don't goalify working at one of the behemoth hiveminds. You will become a better hacker by working at a small, scrappy non-unicorn startup -- meaning, an actual startup -- with tons of work to do. It's not for everybody, but where else can you hack on machine learning on the same day you experiment with building infrastructure? There is so much work to do all around that you'll find yourself digging deep and learning tons of new stuff every single day. One year at a startup I think is worth five at a big ass corporation. Going to work for Google, you'll forever be at the behest of naturally-talented CS PhDs that spend all day answering Gmail support tickets. You won't ever get to play with the cool toys at one of those companies. Seriously. That is one thing I've learned after twenty years in this industry.
realworldview 2 days ago 0 replies      
A mentor is a great addition when doing anything new. SSomeone to guide and advise, to answer questions, to be realistic and stop you from jumping early, and perhaps someone to talk to about oblique issues. I'd also recommend (without knowing what you already do) good food at regular intervals, ensure you have and are able to stick to basic routines, don't drink alcohol, minimise bread and pasta intake (no need to stop it completely), walk where you would previously get a ride, plenty of air and water (same as for dogs and cars) and to return to the start, if you can't fin a mentor then try ensure you have people to talk to and with, especially offline.

And don't worry about your speed or performance. I'm as slow as hell and manage successful projects, very hands-on. Find your niche, and don't expect to be good at everything.

throwanem 3 days ago 0 replies      
It sounds like you're trying to go straight from ~zero to Google. Would you torment yourself over being unable to go straight from high school football to NFL superstardom? And have you considered the possibility that NFL superstardom may not be the only way in which you might satisfy your ambition?
AlexCoventry 2 days ago 0 replies      

 > I can solve most problems correctly given enough time > (usually 2x+ longer than interviews).
That you can solve them at all puts you in a rare and valuable group.

It probably won't get you a "big 4" job, but you might experiment in some future interviews with being transparent about the conditions in which you can solve such problems. E.g., "Give me three hours in a room by myself with paper, pencil, and a disconnected laptop running $MY_DEV_ENVIRONMENT, and I will be able to work it out."

dustingetz 2 days ago 0 replies      
I know a guy like you who had to work so hard in class, we called him names because of how bad he was at coding. Somehow we ended up great friends. Now it's 10 years later. The guy is a contract Scala programmer and bills $100 an hour and is generally one of the best programmers at the companies he contracts for. Not big four, but regular bread and butter companies that build their own software. He got to where he is by not drinking in his 20s and by studying software before work an hour every single day. He even has a wife and young child... we are 30 btw
bwackwat 3 days ago 0 replies      
Software engineering covers is an increasingly wide range of skills. For me, it has been critically important to realize the things which I love doing in this field, and the things which I am genuinely particularly good at.

Overall I might not necessarily "talented," but I certainly enjoy my side projects, have looked for jobs in different areas of work, and try not to shy away from my opinions.

Your comments are varied and it is difficult to fully understand your perspective. Nonetheless, I greatly recommend finding two things: the things you love about software engineering, and the things you believe you have done well within the field.

Capitalize on those things!

lunchboxsushi 2 days ago 0 replies      
At the end of the day "if you do what you love for living you'll never work a day in your life". I'm guessing you do love your career and seeing as you would put in 60-80 hours of work into school each week doesn't mean your lacking any motivation behind it. I look at it as baby steps, keep working at it with the same motivation and you will reach the goals you want. Anyone can who has the passion for it.

but perhaps you might want to do a bit more math + physics studies (online, books etc..) it helps you with formulas and thinking a different way which helps IMO with programming.

Lastly, use a rubber ducky when programming :).

pmorici 2 days ago 0 replies      
Something people don't talk about much because many people might not even realize it is that after your first job most people find a job though their professional network. It's hit or miss interviewing cold.
JamesBarney 2 days ago 0 replies      
Do you have problems solving algorithm challenges when you're not in an interview?

If it's just doing interviews I would recommend going to a doctor and maybe getting prescribed some beta-blockers. It should calm your nerves enough you can focus on the problems at hand.

1) Many people live great fulfilling lives not working at AmaGooBookSoft. But 1.5 months 1-3 hours of time isn't a huge commitment. Also consider that you might not be studying well. What types of questions are you being asked and how are you studying?

2) What are the types of things you decided to improve on?

3) Yes

redleggedfrog 2 days ago 0 replies      
"My current target is a role at one of the "big four" tech companies or a high-quality startup doing either webdev or infrastructure engineering"

Yup, I'd say if that's your goal, then you're not cut out for it.

That's like saying you want to get into stock car racing because you want to hang out with Danica Patrick. You're doing it for the wrong reasons.

You have to love it for the joy it gives you to learn it and use it. Otherwise you won't spend the necessary time to be truly good at it.

smoyer 2 days ago 0 replies      
How did you get into technology? Did you choose a tech career or did it choose you? Why do you want to work for one of the big four? And what are you passionate about? Happenstance is not a reasonable way to manage a career. And it's probably unrealistic to keep up with those who grew up tinkering with code.

On the bright side, you might very well lead a more balanced life outside work. It's also not realistic for me to make an assessment of your choices but you should honestly answer these questions for yourself.

trhway 2 days ago 0 replies      
software engineering and the algorithm based interviews, while connected, are 2 different things. The later is an attribute of software engineering industry. So you may be not cut out for the industry, not the engineering itself. Beside the engineering itself, the industry is the people working in it with a lot of tribal superstitions, rituals, "gods" and "saints", etc. A kind of weak version of religion. Not everybody fits well or easy.
readme 1 day ago 0 replies      
Instead of preparing for interviews do you think it would help if you instead improved your skills with algorithms?

Would knowing that you have it down pat make you more confident?

Do you like this stuff? If you don't, you can always do something else like sysadmin or devops.

dnprock 2 days ago 0 replies      
- Do you like to make software projects? Can you write software for your projects (slow or fast doesn't matter)?

If you answer one No, then you should move on.

If you can answer Yes/Yes, then you should continue. I suggest that you stop interviewing. Your negative experience is hurting your attitude.

Start with what you know.

- Does your current company write software? Go help them write their software.

- Do your friends work on software projects/companies? Go help them write their software.

crashbunny 2 days ago 1 reply      
Some people will need to spent more time that others on learning the skill, but if you love it, you do it.

Search youtube for Neil deGrasse Tyson on dyslexia

robbles 2 days ago 0 replies      
> I can solve most problems correctly given enough time

Have you tried asking in advance of an interview for a few extra hours to do the task(s)? I think this is a totally reasonable request to make ahead of time. Plus, any company that thinks a hard time limit is necessary to evaluate your skills is not going to be worth working for.

CharlesMerriam2 2 days ago 0 replies      
I remember a fun talk by our department chair about the graduate admissions in Computer Science over the years. The chart fluctuated with booms and busts: lots of applicants during hype and profit and a few during gloom and retrenchment. The second line, the surviver (matriculation) numbers over time, was a flat line.

There are many options in life and computer science is not for everyone.

WhitneyLand 2 days ago 0 replies      
You must, at all costs, find a way to realize your actual ability level is independent of your own mind fucking with you to create anxiety and doubt.

The real question is do you have passion and innate motivation around it? If you can earn a CS degree and you have the passion then relax. You just need some time to get the interviewing figured out.

icedchai 2 days ago 1 reply      
There are many, many types of software engineering roles. Perhaps you are just applying to the wrong ones. Maybe you're not a good programmer? I can't say. But even if you aren't, that doesn't mean you can't be a good engineer. You mentioned sysadmin experience, so perhaps you could focus on a DevOps or SRE role?
intellegacy 2 days ago 0 replies      
I think you aren't asking yourself the right question.

It's not about whether you are "Cut out" for it or not.

The most important question is: Are you doing what you want with your life? And is your current path helping you get there?

Another user suggested, that you might not even like software engineering. Sit down and seriously ponder that.

Taylor_OD 2 days ago 0 replies      
I think its worth pointing out to interviewers that you experience performance anxiety. Some might have a solution like letting you do a take home coding exercise. I would also get as much high quality code on github that you can share with interviewers that will show you can write code regardless of your ability to answer questions in real time.
fooey 2 days ago 0 replies      
Of course not everyone can be anything they want.

Practicing basketball for 8 hours a day for 10 years doesn't guarantee you'll get drafted to the NBA.

If you enjoy it, recognize your limitations and try to figure out a way to make money doing it, but don't assume you're going to be a rockstar just because you put in the time.

voidpointer 2 days ago 0 replies      
"Working at one of the Big 4" is not a good way to state your goal. Whatever yor definition of the big 4 is, they are very different companies with different cultures and different products. Find the company (from those four if you want) and product that really excites you and go for that.
heisnotanalien 2 days ago 0 replies      
Your performance anxiety about failing at algorithms problems is making your fail at algorithm problems. You need to believe. Yeah, maybe you will need to work a bit harder but you can do it.
Apocryphon 3 days ago 0 replies      
Have you considered trying an interview boot camp? As awful as the state of the industry is for such a thing to even exist, having feedback and mentoring could be an additional aid over studying and practicing on your own. Interviews are conversations and not solo HackerRank tests, after all.
clw8 2 days ago 0 replies      
If you finished a CS degree with a 3.6, you definitely have the aptitude. What makes you so sure you had to work harder than your classmates to get similar results? They could have been burning the midnight oil a lot more than you think.
ktRolster 2 days ago 0 replies      
It took me 6-8 months after college to figure out the job search/interview process. Once I figured it out, I had no problem.

It sounds like you are running into problems with performance anxiety in interviews. Fix that.

ziikutv 2 days ago 0 replies      
I usually lurk on HN but I just logged into say this because this gets me very worked up...

Mate, fuck what anyone here says, with enough dedication you can do anything you want.

With that out of the way, fuck the big 4s as well. Working there imo is overrated. However, what I would say is you should work on smaller companies and focus on your career path. If you aren't learning at a company then you should be leaving. You can always keep eyes on job posting at those big 4s and develop skills at work or at home that you need to get in.

Just to recap, fuck the big 4s and given enough dedication and hard work anyone can do anything they want. Its not rocket science. heck you can even learn rocket science, there are many resources online. Knowledge is everywhere.

nilved 3 days ago 0 replies      
Experience can be a replacement for formal education but you need one or the other. I think that anybody can work at a big 4, but it won't be your first job unless you went the formal route.
BurningFrog 2 days ago 0 replies      
Writing software is hard, and far from everyone can be real good at it.

It also takes time to become good at it. I was pretty useless the first three years of my career.

1024core 3 days ago 0 replies      
Not only is it possible. but at a previous job I soon realized that every one of these people had decided to get together and take over the company.
jimjimjim 2 days ago 0 replies      
1) no one starts at the top.

2) you have done enough prep. Get some real world experience.

3) make them want you. Establish yourself.

beachstartup 2 days ago 0 replies      
you should check out reddit.com/r/accounting

terminology like "big 4" is quite telling. you are competing with people who do not view this industry as a stepping stone to high social status, and that is why you are losing.

mdip 2 days ago 0 replies      
I'll try to answer your question and provide advice on each of your points but to your broader question, yes, absolutely someone can be not cut out for software engineering. The people I know who were "not cut out for it" usually went to school for CS because "that's where the jobs are" but it wasn't necessarily where their passions were. Several of them ended up in tech, but often on the sales or management side, not in software development. Really, if you enjoy it and want to do it, you can become cut out for it. You'll simply learn what you need to learn to become successful.

- Working harder than others in college. I don't find this to be a particularly useful guide for anything other than your work ethic. You had a respectable GPA and were willing to spend 60 to 80 hours per week on schoolwork. So what if someone was able to eek by more easily? Maybe they had a leg up on you and got into it earlier. Maybe they wouldn't have put in that time if they needed to.

- Rejected interviews / performance anxiety / bad at algorithms I can't speak to working for "the big 4". I haven't had any interest in doing that, myself. There's plenty of great jobs out there at smaller companies (including startups). If you know you're bad at algorithms, start studying. Grab the ones from interviews that you've been bad at and learn them up and down. Write example libraries of each in a few programming languages. Put them in a GitHub/GitLab/BitBucket repository. For the languages you're targeting jobs in, find an open source project in the language that has a good community and participate. Find a library you wish you had and write it. Put them in a repository.

Failing at interviewing at a top-tier company may be an indicator that you're not cut out to work at one of those top-tier companies. This sounds worse than it is. Maybe you wouldn't thrive in that environment as much as you'd like to thrive? Wouldn't you be happier with a job at a smaller outfit where you can grow, or maybe just a different outfit? If Google/Facebook/whomever else you consider top tier is proving too difficult to get in to, look elsewhere.

I mentioned the whole repo thing and this is advice you'll find all over Hacker News and elsewhere. It's not an industry fairy tail ... it works. In your cover letter, specifically mention your experiences with the languages they're looking for and link to relevant projects. In your resume, provide a link to your GitHub ID or relevant ID on another site that has a list of your projects. If you're lucky, they'll have already looked over some of your code. But don't count on it.

Having that available gives you the opportunity to creatively deflect those technical questions. Remember, they're asking you to demonstrate your knowledge. Just because they gave you a whiteboard doesn't mean you can't demonstrate it differently. Three years ago I took an interview[0] and was asked something algorithmic around multi-threading. I had written a library in a private repo that handled message passing between two applications running on the same machine in a thread-safe manner and was directed to the white board. I said "I can do you one better"[1] and mentioned a library I had written for thread-safe in-memory message passing between two applications running on the same machine where I not only had to solve that problem, but had to do so very performantly and had to address a number of other corner cases. The interviewer let me log into my BitBucket account, plugged his laptop into the meeting room's TV and after a quick apology about the code quality (it was actually pretty good, but not perfect which was why it wasn't public, yet), I showed him the solution. The upshot was that the entire rest of the interview was me walking through this code[2]. Why did you use a Mutex there? Why a ManualReset there but an AutoReset there? It was a lot of fun.

1) Yes. When the benefit of getting into a top tier company outweighs the grief in trying to get there. Maybe you're there, maybe not? Ask yourself why you're focusing on these specific top-tier companies and find out if there's a company not currently in your list that may fit those criteria would be my only advice here.

2) You're already doing this. Post mortems are a good idea. Another thing you can do is join some meet-up groups that have professionals in the parts of the industry you're trying to get into. After you get to know some people, you'll find folks who do regular interviews. Ask them to help you. I used to give a lot of interviews and I have volunteered for interview prep many times. A lot of anxiety around interviewing comes from social anxieties in general. Joining a meet-up group will give you practice at introducing yourself and making a good first impression. Walking up to random strangers at the super-market and striking up a conversation works, too (I've done this as practice, my self).

3) My last two answers are my best advice. A mentor would be helpful, but it doesn't have to be such a formal mentor/mentee relationship. Get into some user groups/meetups and meet others in software development who are where you want to be. Make friends and those friends will become your mentors by default if you're willing to seek advice, ask for help, and accept hard observations you may not want to hear.

And, most of all, hang in there. It sounds like you really like doing this stuff and want to do it. You're already ahead of most of the people I used to interview. Granted, it wasn't at a top-tier company (though we were a huge internet company) and it wasn't for the sexiest of development jobs (because that kind of attitude would have had you hired pretty easily if you were even close to qualified where I was at).

[0] This interview found me. I wasn't looking at the time but my dad's advice of "never turn down an interesting interview/opportunity" stuck in my head, so I was very casual in this interview. That turned out to work in my favor for whatever reason and I ended up being offered the position at a salary figure I had never expected to get. I didn't take the job because it required moving out of state and that wasn't an option for me at that time.

[1] This sounds really arrogant and I'm embarrassed to say that those were my exact words. It could have easily been off-putting to the interviewer and I knew that, but because of the last footnote, I was overly casual and confident (if I didn't get the job offer, who cares, I probably can't take it anyway!). The funny thing was, this group of people went from extremely formal in the beginning to casual by the end. I felt like we were having a discussion like I'd have with other developers over beer, not like I was having my knowledge put to the test and when the "thanks/hand-shakes" happened at the end, one of the guys said something along the lines of "Thanks for your time, I really enjoyed this interview" to me, which stood out since I can't remember an interview experience that equalled it.

[2] I picked a perfect library and I ended up using this library in two other interviews as example code. It was a tricky bit of logic where you had two applications, each in different security domains with both responsible for processing some data and one responsible for requesting and writing the data. They used MemoryMappedFiles to share the data between them and had to manage situations where either side may not be in the position to be able to receive the data, so it covered a number of scenarios neatly in one library and made message passing with these odd requirements a simple matter of a few lines of code wrapped in whatever threading construct one wished to use.

kafkaesq 2 days ago 0 replies      
1.) Does there ever come a point where it just isn't worth it to continue trying to be a software engineer who can get into top-tier companies / projects?

Maybe, though I don't think you're at that point yet. More specifically, though, you may do better to simply let go of this idea that you need to join a "big four" (or "top-tier" company in any other sense) in order to feel like you've reached your potential (or are on a safe track to it). Why? For one thing a lot of people who "make it" into those companies report back that (apart from the prestige) the experience just wasn't as rewarding or interesting as they thought it would be.

But even more fundamentally: After all, you have to remember that none of these companies were anything like what our image of them is now, back when they started. And they certainly weren't "the companies to go work for and make a name for yourself", back in their very early days.

Point being: rather than chasing after the coattails of what other people have done (and which society later deemed to be great), you may do better thinking up something you can do that will great, and make it your goal to bring it into reality. And by definition, its potential greatness may lie in the fact that it just isn't seen as "great" by a critical mass of people yet (or because it simply raw and unfinished, and waiting for someone to come along and provide fresh interpretation and perspective -- someone like you, perchance).

BTW, there's an obliquely related quote from Jamie Zawinski about running after "success", and where you end up as a result:

And there's another factor involved, which is that you can divide our industry into two kinds of people: those who want to go work for a company to make it successful, and those who want to go work for a successful company. Netscape's early success and rapid growth caused us to stop getting the former and start getting the latter.


Things are rather different nowadays, and I wouldn't say that working for Google or FB now is anything like working for the ticking time-bomb that was Netscape in 1999. But, existentially, I think there's a similar lesson to be drawn from being obsessed about joining something "great" versus... doing something great.

And what's interesting about JWZ's is that, while he appears to have made out well enough for the years in the tech industry -- where he ultimately succeeded was in defining "success" on his own terms, even if it meant doing something completely different (running a music venue), even if was guaranteed not to make him rich or "influential" as certain other people with whom he also worked at Netscape, and who we hear a lot more about today.

2.) How can I find some positive reinforcement in interviewing / interview prep even if I constantly get rejected? I do perform post mortems on every interview in order to find areas to improve.

Fundamentally, we can only find positive reinforcement from within (and from helping others) -- not from other people's evaluations of us.

But in regard to interviews, it may help to remember that these are largely bullshit. Basically we're in the midst of a long-term speculative bubble in regard to the supposed potential of certain cargo-cult interviewing techniques (hashed out in the past few years in folkloric fashion) to assess people's inner qualities, and predict their potential for "greatness." Which basically seem to operate on the principle of, "Well we asked such-and-such questions before. So let's ask 5x as many, 10x harder. That'll get us people 50x better."

All of which are fundamentally, hopelessly flawed: not (just) because the questions are silly, and increasingly have become tests of rote memorization.

But because you don't do great things by "being" great, or simply by finding "great" people. Great things are accomplished through great ideas, and from the courage (and strength) to pursue them. And because you're pursuing something you believe in -- not some random goal that someone else put in front of you.

Focus on these qualities, and you'll have a much better shot and ending up where you really want to be in this life.

projektir 2 days ago 0 replies      
Disclaimer: I have never worked for a Big 4 company, and the only interviews I had with them were during college with Amazon, and I've failed both of those, either in the 1st or the 2nd round. So I'm not a success story. That being said, if I were to set this as a goal, I know what I would do.

> Is it possible for someone to not be cut out for software engineering?

The answer to such a question is always 'yes'. But there's a lot of danger in assuming that you are the someone. This is betting against yourself. And there's only one of you in the current reality state. Don't bet against yourself. That is not how you should think.

Definitely don't bet yourself in this instance if you already have experience successfully getting multiple jobs...

What you should investigate instead is what do you want, and how much you want it. Consider the various pros and cons and how they make sense to you. How much do you really want to work for a Big 4 company? How do you feel about some of the potential tradeoffs (i.e., time spent on learning algorithms and interview questions)? Same with the software engineer question. How much do you want to be one? Why? What are the tradeoffs?

[Note: not all tradeoffs are "true" tradeoffs, i.e., that you'll loose something. Learning algorithms may make your mind sharper and help you in other areas. But it also means you can't spend that time on, say, relationships, entertainment/hobby, or even something in the health department. There's nothing wrong with tradeoffs and don't scrutinize them too much but still be aware that nothing you do is free]

The problem with the question of "am I not cut out to be a software engineer / Big 4 employee" is that no one can answer it, including you. You will, most likely, never ever know unless you reach some success point where you can definitively say yes. You can't just base it on things like being rejected by many companies or struggling in college, because that already implies those are reliable proxies and that's a really shaky assumption. I had trouble in college, too. I graduated with a 3.0. It doesn't seem to mean a thing, other than what it literally means.

> So far, I have interviewed for and been rejected by no less than 10 different roles. I was also rejected by approximately 20 companies during college. I always fail during tech portions.

This is neither here nor there. There are a lot of factors that could go into something like this, it could be way too many things. Not enough information. The only thing I'll say is try to develop a model of what kind of companies you are not a good fit for, so that you don't spend too much time on them, and avoid wasting too much time on unlikely pathways unless you really want to work for some specific companies. I would often apply to very few places, get offers from all of them, and then choose among that. Applying to lots of companies indiscriminately was both stressful and yielded nothing. Also, don't be discouraged from applying to places that have requirements you don't meet but are nonetheless interesting to you.

Also, field, location, frameworks, what the company lacks, how the company is doing, etc., all affect your chances.

> performance anxiety

I got rid of my performance anxiety mostly through a major philosophical shift. I don't know if this is a topic that one can give "simple" advice on... in the context of interviews, for any given interview, assume that you will pass it. Just assume this, without making anything depend on it being true. Any time something in the interview goes "wrong", just assume it doesn't matter. Don't think about how you "should" know the answer to some question, just give your best answer or say you don't know and move on and do not assume that this jeopardizes your interview.

Whether you did something "wrong" during the interview, you can figure that after it is over. And, remember, they're just interviews. You do not owe to the world to pass them, they don't say something insidious about you, you're not a worse person for not passing one, nor are you a worse software developer for not passing them. You interviewing for your benefit, not theirs or anyone else's.

> If my goal isn't an impossibility, how can I efficiently progress towards it? Would a mentor be helpful?

Assuming you do decide that getting into a Big 4 company is a fairly high priority goal for you (and, really, even if it's not), the first thing I would recommend is making sure that you're focusing about progress and results as opposed to time or work. You want the most productive results from the least amount of time and work. All work should be justified.

Essentially, you're trying to learn how to solve algorithms quickly and under pressure. As with any learning tasks, this is a fairly big and complex topic that's not well understood. This is where you want to apply your learning how to learn skills and try to pool whatever intelligence, intuition, and knowledge you currently possess. I can write, well, a lot on this topic so I'll try to keep it relatively short: try to figure out what is needed and what is missing in your head, and try to find a way to process your learning style and what kind of things give you trouble. Grinding on a problem over and over actually probably benefits more brilliant people more than the slow ones among us, since the brilliant people can make their brain form all the connections, we actually need to trace what goes where.

Maybe you have a poor memory and you need to organize the algorithms you're learning. Maybe you're not used to writing code a certain way and you need to do that. Maybe you should take a stab at some weird language to free up your brain from misconceptions. Maybe you should play a video game to see some pattern you've never paid attention to before. Maybe you should get some sleep and stop worrying about things for a week. It's a bit of a strange process at times but it's not entirely hit or miss and if you are very attentive to your brain and you do not waste time shaming and guilting yourself, you can discover a lot of interesting things about how you work, whether or not you'll make it into that Big 4 company.

I can write more about this but it's not going to fit in an HN post.

Just, don't bet against yourself.

ufmace 2 days ago 0 replies      
Is it possible for somebody to not be cut out for software engineering? Absolutely.

Are you not cut out for software engineering? You've already been doing it for 1.3 years, there's no reason for you to think that.

Are you not cut out for being a high-quality professional? That sounds like a yes. But it's all about your mindset, not your skills. Your skills are just fine, but your mindset is much more important.

You need to ask yourself what you want out of your career. I say that rhetorically because It's pretty clear from your writing that what you're looking for is an external perception of status. The thing about status is that the people who chase it above everything else will never, ever get it, and it isn't worth as much as you think. Who exactly are you trying to impress with this status that you're looking for? If you manage to get it (not likely), and these people are actually impressed by it (even less likely), will you feel good about that for more than 5 seconds? I'll let you guess the likelihood of that.

The thing about jobs perceived as high-status is that so many kids are desperate to get them that any one person will have a very hard time getting them, and the people who do get them tend to get treated like dirt, because the companies know very well that there's a line of people down the block ready to replace them if they displease their management in the slightest way.

You're not gonna get that kind of status with your job search. What you can get is a solid, upper-middle class salary, a good work schedule, and respect that you have earned with your productivity from your co-workers and management. If that's enough for you, you can get a job like that very easily.

I never got a CS degree, and have never really gotten good at the fancy algorithm type of problems that some tech companies like to use in interviews, and that you seem to be sweating over. Yet I just finished a job search, got multiple good offers at once, and accepted a good job with a solid company. How? I never bothered trying for any of the big-name companies, and am perfectly open about what my skills are and aren't. There are tons of good jobs out there that want people that can solve real-world problems instead of academic exercises on whiteboards.

And that's where real status comes from. Having a solid job that you're happy and successful at is real status for adults. Just wanting to have Google or Facebook on your business card is for children.

Not that there's anything wrong with working for the Big 4. But do it from a position of strength, i.e. you're already a strong, confident professional with a lot of value on the market, and they better give you a good offer and not jerk you around on the interview process because you have plenty of other potential employers to choose from.

Ask HN: I am torn between whether I should do MBA or not. Thoughts?
47 points by kakekickball  2 days ago   32 comments top 12
rayiner 2 days ago 2 replies      
If you want to get into executive management and can get into a top school, getting an MBA is a good idea. Consider going the management consulting route. You'll get a substantial pay increase a couple of years out, and exiting to upper management after being a consultant is not uncommon.

I detect you're a non-native speaker. A noticeable accent is going to be bigger problem if you're gunning for executive management than in tech. I'd invest in some language coaching.

eb0la 9 hours ago 0 replies      
Looks you're doing a cost-benefit analysis of getting an MBA ;-)

In my country, you need an MBA to get into mid-upper level management positions just because almost everybody is having one just to differentiate from others.

The cost of getting an MBA - paid by you - is nearly the same of running a business for 2-3 years. And it also reflects you have knowledge about managing business when your own money is at stake.

A lot of people wants an MBA for the connections: get an MBA because you want to hear and discuss a lot of different points of view o a lot of business subjects in a short (1 year) time. Connections are useful if you can make use of them (like making business together with other people).

eroo 2 days ago 0 replies      
perspective: finished first year @ wharton mba and taking a year off before second year to do an ms in cs (background is quant but not super computational - I'm really enjoying diving deeper into the latter now though).

1) Only do the eMBA if you can get BIGCO to pay for it. Price is unreasonable because it's expected to be expensed to an employer and it is a serious time commitment. I don't think it'd be worth it unless BIGCO is invested in you enough to sponsor.

2) 11-12 year experience upon entry is late for full-time MBA (mean is 5, max is 13). The MBA won't give you the boost to executive management - no one hires fresh MBAs for exec roles. MBA or not, that'll only come from hustle.

3) No empirical data, but my working theory is f(work incredibly hard, be kind to people and foster both friendships and partnerships, always be seeking out opportunity)

Misc: the coursework can be really useful/fun depending on the program. For example, Wharton lets me do the coursework equivalent of a grad degree in statistics w/i the mba. Lastly, the ready access to such a diversity of smart, ambitious people mid-career is really cool.

Happy to chat further if you'd like or put you in touch with MBA or eMBA students/adcom folks.

thegranderson 2 days ago 0 replies      
Do not have an MBA, but many friends who have gone to the top 3-5 schools, as well as some who did eMBA/part-time MBA programs.

There are a few worthwhile reasons to get an MBA, but one really trumps the rest.

As some others have said, the overwhelming value of an MBA is to build strong relationships with future business leaders. End of story. If you don't want to spend 2 years doing that and pay for it, don't do an MBA.

Those I've talked with that did an eMBA mostly regretted it because they were incredibly busy, and barely had time to meet anyone in the program, let alone build strong relationships with them.

If you don't have much background in management or business (most of which you can get from reading books) the course material will be helpful, but you could just as easily learn it on the job - if you can get the job. That is the other reason to get an MBA; to get into a company who requires it, though these are increasingly become less mandatory.

There are many answers to the question of how to get to executive management, but I think a very common one, which is likely to work for most people is the following: work at a service provider which gives you some strong functional/business skills (e.g., consulting, investment banking, equity research, marketing strategy, etc.). Do well there, but don't stay too long. From there, take a middle-management role (e.g, director, VP) at a corporation that is growing fairly quickly. Make your way up, and probably switch to another firm if you're not advancing quickly where you are.

Be careful of the trap of not having operating responsibility - you won't have this as a consultant or investment banker. If you don't have experience owning a P&L, you can't be trusted to do so even if you smart and capable. You could be in corporate strategy, corporate development, etc. but those are not true executive management roles.

Wow that went longer than I intended so I'm going to stop rambling.

bcheung 2 days ago 0 replies      
If you're already making the kind of money an MBA would doesn't seem like it makes a lot of sense. What's the point of paying lots of money and spending all that time to make the same as what you are now? You're salary will go up from real world experience and increased skills from working on the job too. In my experience, only really large companies where you probably don't want to work pay more as you get more degrees.
hellcow 2 days ago 1 reply      
Though I don't have an MBA, everyone I know that's been through HBS recommends going for one reason and one reason alone: connections. You're there to meet people, make friends, and expand your network.

Since the goal is to network, you want to maximize your time there. I'd elect to go through the full 2 years.

eappleby 2 days ago 1 reply      
I faced a similar question about 10 years ago. I had a bachelors in engineering (comp sci), I didn't want an MS or PhD, I had solid grades, and I wanted to move into "executive management" (whatever that meant). I ended up getting my MBA at a top 10 school, landed a business role at a large company, and a few years later, started my own company. Business school was right for me and I think it came down to the way I answered one question about myself...

Am I the type of person that embraces new opportunities and takes risks with my career?

At the time, I think the answer was no and as a result, business school worked out great. It introduced me to new career paths, brought in companies for me to interview with, and helped me engage with individuals with vastly different perspectives than my own. If the answer would have been yes, then business school would not have been the right choice. I was 26 when I started business school (pretty common age), and a person's late 20s is one of the best times to explore new directions and be creative with their career, since you already have some work experience and capital, but likely no children. The 2 years spent in business school (or 4 years if, god forbid, you go the consulting or banking route) is valuable time that could be spent taking bold risks.

If you believe that, then to answer your questions...

1. No, an eMBA does not make sense because you are both allocating your time to business school, which can help you identify new career opportunities, but you are also locked in to the company that is sponsoring you, so you aren't as free to explore elsewhere.

2. If you are already making $150k+, then there won't be much impact to your life until you make $1M+, so the salary difference shouldn't be factored in one way or another.

3. What do you mean by executive management? Different executive roles require pretty different career paths, and becoming an executive at a large company is probably 10+ years out, which is likely too far to really plan for.

Hope that helps. Good luck with your next steps.

biocomputation 2 days ago 1 reply      
Definitely don't get an MBA if you're not actually interested in learning the material covered by the program.

I also didn't get a pay raise, and I didn't use the connections I made, but learning the material was extremely helpful: market forces, positioning, statistics/analysis, strategy. I still skim email newsletters I get from McKinsey & Co. / Wharton a few times a week, and HBR has some incredibly good articles every now and again.

Source: C++ developer with MBA in marketing.

skierscott 2 days ago 2 replies      
I'm a second year graduate student in CS and also debating getting an MBA.

I currently study optimization and machine learning, and in the future I'd like to lead a team of people studying similar topics. Initially, my goal was to stay an academia and become a professor, but now I believe I'd like to be in industry doing similar tasks.

0max 2 days ago 0 replies      
To quote a line from the documentary "Something Ventured":

"Who needs Harvard Business School when you have Silicon Valley Business School."

To be fair, I'm most likely paraphrasing. That being said I only have a GED/Some College experience and I've made it into Product Management.

chrisgoman 2 days ago 1 reply      
The answer to all your questions is "it depends" (yeah, cliche). I have an BS Architecture (not from the USA) so I had to no choice but to get an MBA degree (from the USA). I did kind an "eMBA" (basically working full time) from a Top something school

1) Yes, if you have an engineering degree. Business is like another language so there is jargon in accounting, marketing, finance, etc that you need to learn. If you are not getting that at work, the MBA will at least enable you to understand "executive-level" conversations. Most of them are common sense (you can pick it up from context) but it is way different if presented to you in a rigid, structured, organized fashion vs listening to random conversations. You can obviously learn this all from Khan Academy ...

The other overlooked thing here is the people that you meet. On the more expensive programs (>$100k+), the pitch will be you will meet the same quality people as you (same aspirations) and that is true to a degree as the quality of your education will be partly affected by who is in your class. Make sure you go the MAIN CAMPUS of the school and not a off-campus thing. I personally felt the on-campus experience was great (we have a good football team so that helps)

2) When I did my eMBA (graduated in 2004), the salaries were around $80-85k. I realized that most of the people in the program were making around $40-50k and hoping to get that bump. I was making about $150k/yr at the time so this wasn't really the reason why I went to get my MBA (it was to get a U.S. degree) so you will just get some funny looks when you tell people you don't have any interviews set up. Most BIGCOs (specially consulting firms) value an MBA, I guess because they can mark up your rates.

As an engineer and a TECHNICAL manager (not just a "manager"), you will most likely make more money than 90% of the MBAs even without an MBA. Salary is NOT one of the reasons you are doing this.

3) Getting into executive management is more about opportunity and luck. You could be the most qualified person in your company but there only so many seats to go around (1 VP Eng, 1 CTO, etc.) so you may have to look elsewhere. An MBA will certainly help but it will NOT be the main reason you get there. The MBA just lets people know you have met a "bar" (like "ok so this guy knows the basic business stuff") so they can check that box off when shortlisting candidates. At the end of the day, it will be how much value you can bring to the table in totality. Executive management is less being a "manager" but being a "leader" as your role will have a lot more impact in the company (in a normal, sane, non-dysfunctional company) and you will have to think more strategically. The MBA will have courses in "Strategy" that will allow you to have some structures, words to communicate in your head when you present your plan to the people. You can have all the strategy in the world but if you cannot communicate it in a structured, organized & impactful way, then you will not get the job. It's not just using BS buzzwords but really making the board (or CEO) imagine that you are ALREADY in executive management.

hyperliner 2 days ago 1 reply      
You really should think long and hard about WHY do YOU think you WANT or NEED an MBA.

a) Because you love to learn something new <== Good reason, albeit expensive. You can read the books or do online classes.

b) Because you want to make more money <== This is possible, but it's not guaranteed, especially at the level of incomes you already have.

c) Because you want to have a diploma on the wall <=== Questionable reason, but hey, who am I to tell you how to spend your money?

d) Because you want to broaden your horizons into areas you have never stretched into (private equity, investment banking, Marketing, strategy, M&A, etc etc). <== Good reason. If you love it, and you end up getting well paid for it, awesome.

e) Because you want to go into a different career path <== Excellent reason. An MBA gives you many choices, not all of which lead to higher incomes, but it opens doors to different career paths.

f) Because you want to be a great tech+biz hybrid. <== Also a great reason. But it depends on where you want to work: large companies will value you. Small startups will probably not value your hybrid skills as much, or may be counter productive.

g) Because your parents want to have an MBA in the family <=== Terrible reason.

h) Because you want to meet people and build a network <=== Seems expensive for that reason. However, several schools do have specific areas where the networks are strong: MARKETING, TECH, ENERGY, etc. So if you want to work in those industries, getting an MBA from a school with that network will be very useful

i) Because you dont want to still be an engineer when you are 50. <== This is a tough one that I have been helping a colleague with lately. Reality is that there is age discrimination in the work force. Being an old engineer requires being an AWESOME engineer. I have heard from other engineers that it is tough to be old and mediocre (though you can be young and mediocre). If you are old, then being in some other function (or in management in technology) gives you a longer career to retire on. Of course, if you are awesome, then nobody cares that you are old.

It seems you want to go into "Executive Management." That is a whole different question. The first question to ask is : what kind of company? Then research whether those companies value it.

I made my decision based on [a][d][e][f] and it worked really well for me. But maybe I was lucky and had a lot of people who helped me a along the way. I have heard others who make it into executive management due to some other reasons (hard working, right time right place, family connection, tag along a friend who is going up, etc.). So I am not sure one leads to the other.

These days, it seems that being an engineer is an awesome way to have a huge impact (unless you are in I.T. or something like that). I think I would still choose to get an MBA today, but I still think i will go for an MS when I am 50 or so, because of reasons [a][d] above.

I hope this is useful.

Good luck with your decision!

I created a minimalist library to replace Redux
15 points by stevendesu  1 day ago   5 comments top 2
geordee 1 day ago 0 replies      
It is good thing to have options. Let the community decide the adoption.
ykler 1 day ago 2 replies      
I think it is a good thing that the React community has come together around one flux library, and it's bad to promote an alternative unless it solves a problem that would be hard to solve with Redux. Saving a few lines of boilerplate just isn't enough of a win. Starting an open source project is a great thing to do, but why not try to solve a problem that isn't already solved?
Ask HN: Are plain resumes still relevant today?
35 points by enitihas  2 days ago   38 comments top 22
willempienaar 2 days ago 0 replies      
Plain resume (I use LaTeX).

This also filters companies to an extent. I would rather work for a company that values the content of the resume over the presentation.

Resume: http://willem.co/cv/wp_resume_2016.pdf

Template (LaTeX): http://willem.co/cv/wp_resume_template.tex

Awesome Resume Templates (LaTeX): https://www.rpi.edu/dept/arc/training/latex/resumes/

ddebernardy 2 days ago 0 replies      
Your CV's format is irrelevant so long as it doesn't look like a dog's breakfast or a Xmas tree.

When writing your CV, keep in mind that only three things count:

1. Short. You're seriously testing a recruiter's patience if your CV is longer than a page or two.

2. Scannable. Your CV only gets a few seconds of attention before a recruiter decides to read it or not. Make each second count.

3. Results. Don't stick to writing what you worked on. Also spell out the results and how it contributed to the business.

Last but not least, never forget that your CV's only purpose is to get an interview. Just like a marketing brochure for a product that requires a sales meeting, less is often more because it can give an employer a reason for saying "no" before you ever get to talk to them:


wott 2 days ago 0 replies      
Rsum is like raising children: they are plenty of people with definitive advices about the perfect way to do it, all of them being contradictory.
v33ra 2 days ago 2 replies      
I use a resume which I hand coded in HTML&css and while sending it to HR folks, I manually turn the HTML page into a PDF and usually include a reference to the online version too (http://veerasundar.com/resume)
cjbprime 2 days ago 3 replies      
Yes, I use a plain resume: http://printf.net/resume.pdf
anexprogrammer 2 days ago 0 replies      
I'd much rather see a plain resume, especially if I have a lot to skim. Only time I've ever seen more slightly creative approaches have been designers.

I'd be a bit wary receiving something like enhancecv - if you have space for a quotes block, what are you leaving out? I might use something like that if putting my CV on my website, but as well as the boring traditional plain format.

kirykl 2 days ago 1 reply      
Put yourself in an employers shoes. They really care about the content, not the design. They're sifting thru lots of resumes looking to spend 70,80,100k on a person, a templated colorful design just is not an influencing factor at best and a distraction compared to plain white at worst. (Unless it's for a design/creative position).
vfulco 2 days ago 0 replies      
I am super disappointed that jsonresume.org can't fix their formatting issues surrounding output to pdf and ms word. I am not casting stones as the contributors are all a super talented bunch. Coming from the Python/R-project universes and having started up a professional services firm for individuals in Shanghai; English resume editing, interview coaching and LinkedIn Profile creation, I simply don't have the time to learn and modify the underlying node.js code. The ability to easily ingest and store the resumes I am supplied with and then the highly improved product I create would be invaluable. I have learned the hard way how difficult programmatic formatting for the mass market really is. As a professional resume editor, I concur 1) simpler is always better, 2) white space is as important as what is on the printed page, 3) use 1 1/2 to 2 pages for readability. Many resumes are run through ATS parsers/processors and you do not want to use such fancy fonts and styling that you provide any chance for your document to be rejected by the system. There are other tips and tricks but those are the most basic. Great discussion here.
jorgemf 1 day ago 0 replies      
Do you want to stand out above other CV and make the life of the person who is reviewing the CVs a bit less boring? If you answer is not, then do a plain CV. Otherwise do something different. Put some marketing in your CV, grab the attention of the recruiter and get him out of his routine. I am not talking about a lot of text with funny colors or a weird layout. Just take a look to some CV of designers, they usually do something different to show their creativity. Why wouldn't you do the same? There are a lot visual techniques to show your working skills and past experience.
NumberCruncher 2 days ago 0 replies      
Is there any online resume solution (beside running my own website) where I can hide some detailed information behind bullet points (like accordions) and I can track the viewers activity on the page? I am curious whether this kind of information could help me to build a better resume.
DrNuke 1 day ago 0 replies      
At an undergrad level, it really matters you understand the fundamentals and are quick to learn both technically (the frameworks in your field) and socially (to interact with people in a team). That said, a plain resume with any past volunteering / team-based appointment would suffice.
amirbehzad 2 days ago 0 replies      
Mine is not plain-text. I embrace rich-text.


nicklo 2 days ago 0 replies      
I use a plain pdf resume that is written in Latex. I host it on Overleaf so its always easy to update.


stirner 2 days ago 0 replies      
I use the moderncv template in LaTeX [1], which I prefer for a few reasons:

* It's fairly plain and minimal but looks nice and professional, and can still be customized so it doesn't look cookie-cutter.

* Using LaTeX means I can track my resume with Git and easily convert to plain text.

* Using a popular template included with many TeX distributions means finding help is easy.

* Using a template means you can just focus on the content and stop worrying about design.

[1] https://www.ctan.org/pkg/moderncv

guessmyname 2 days ago 1 reply      
I like how others are using this post to link to their own resumes.

I understand, a picture is worth a thousand words, but this is too convenient.

Anyway, I vote for plain text too, somehow it looks more serious and clean.

rtcoms 2 days ago 1 reply      
I really like plain resume. I had my resume in .doc/.docx format, but couldn't a proper way to edit it on linux. So I moved to web based resume. Here it is : http://resume.rohittrivedi.com/ .

I've taken the source code from here https://github.com/jglovier/resume-template and made changes according to my requriement.

felipellrocha 2 days ago 0 replies      
Plain resume, hands down. Whenever I see something that is supposed to be "enhanced" I just assume they are trying to get my attention away from the actual contents of the resume itself.
smelendez 2 days ago 0 replies      
Make a plain PDF resume that's as easy to read as possible. If you want, also make an enhanced portfolio or a personal site.

Someone might print a stack of resumes on a crappy printer that's running out of ink. A recruiter might fax your resume to a client. Someone might want to read your resume on an off brand PDF viewer on a phone with a slow connection. Someone might have 200 resumes to look through and not want to figure out the unique UI for yours.

joeclark77 2 days ago 0 replies      
I think it depends on the company you're applying to. Big companies routinely get thousands of resumes and may use some form of automation to screen them. If the software can't pick out the basic details, the whole thing may be skipped.

On the other hand if a human is reading your resume, creativity may be a plus. So that might apply to small businesses, start-ups, etc.

michaelchisari 2 days ago 1 reply      
I much prefer a plain resume. It's so effortless to pass around a pdf file that sites like enhancv.com should be considered supplements, not requirements.


phamilton 2 days ago 0 replies      
My last round of interviewing and taking a new job was resume-free. Most companies just printed out my linked in, and really only to give interviewers something to take into an interview.
aardvark291 2 days ago 0 replies      
Yes; in fact they are preferred.
Ask HN: Master vs. Udacity nanodegree
47 points by pgcosta  3 days ago   24 comments top 11
ShakataGaNai 2 days ago 0 replies      
Lets start out by being clear here, Udacity "nanodegree" isn't an accredited degree. So please keep that very clearly in mind.

That being said in the SF Bay Area "tech bubble" no one really cares about degrees. They care about what you know and what you can do. That may not be true where you're looking for a job though. You should look at what real job postings are looking for and perhaps talk to a recruiter or two (if possible).

Anything from a real university is likely to provide you a lot more information and access, way more than you can ever get at Udacity. However if you can't afford the time/money, Udacity or similar learning courses may not be a bad option.

anuj_nm 2 days ago 4 replies      
Have you considered an online Master's degree in machine learning from Georgia Tech? Its offered through Udacity so its cheaper and more flexible, but you also get a full degree from Georgia Tech.

Full disclosure- I'm currently in that program and loving it.

napratin 2 days ago 1 reply      
The goal of a Masters degree in Machine Learning is ideally to prepare you for core research and engineering roles where you work on improving, adapting and inventing new algorithms and techniques.

However, such roles are very limited in the industry. Most jobs you will find expect you to be able to apply, combine and optimize existing algorithms to given real-world problems. This requires a different set of skills that are seldom taught at University (you're typically expected to pick up these practical abilities on your own).

Udacity's Machine Learning Engineer Nanodegree, like its other programs, is heavily project-based, and has been developed with feedback from industry partners in order to emphasize the skills and concepts that are most relevant for the vast majority of jobs that are out there. This focused curriculum allows people with limited time or a related background to efficiently get started in machine learning.

Keeping this mind, ask yourself what your ultimate goal is, what time constraints you have, and choose accordingly. There is no shortcut to success, esp. in a competitive and highly technical field like machine learning - whether you opt for a Masters degree or a Nanodegree, you will have to spend considerable effort building a strong public profile (e.g. by participating in Kaggle competitions, and working on additional projects) in order to make yourself stand out from the crowd.

Good luck!

Disclaimer: I work at Udacity, in case you didn't realize by now :)

quickpost 3 days ago 0 replies      
Unless you're career progress is dependent on a traditional degree (university professor, old school corporation, etc.), I would say go with whichever route allows you to actually both learn and apply the materials to the fullest extent.

The important thing is that you're able to learn and master the material and use it to create real value in the world. If you can do that, I don't think anyone will care how you came by it.

The great aim of education is not knowledge but action.

umlaut 3 days ago 1 reply      
I just finished the Udacity machine learning nanodegree a bit over a month ago. While it is good (and getting better) at teaching techniques and material, you miss a lot in terms of access to research faculty.

There aren't any research projects, and you won't ever operate at the cutting edge (WaveNet!) at Udacity. It's like trade school for software, which is fine if you're highly motivated or just want to acquire some skills.

sndean 2 days ago 0 replies      
As a third, shorter (and cheaper) option I'd suggest the new Coursera ML course [0]. If you're short on money, they'll let you take the courses for free.

I don't know how expensive Master's degrees are in Barcelona, but GA Tech has a online Master's in CS for ~$500 per course [1], where you could focus on ML.

[0] https://www.coursera.org/specializations/machine-learning[1] https://www.omscs.gatech.edu/

masters3d 2 days ago 0 replies      
A Udacity nano degree is more like a Graduate Certificate but much much cheaper. What udacity has going for them is that at the end of the nano degree you have projects you can show off. Not all certificate programs will make you have a final project for you portfolio.
codeonfire 2 days ago 1 reply      
In 50 years people will know what your degree is and your university will probably still be around. Udacity will be long gone and no one will know what a nanodegree is.
forvelin 2 days ago 0 replies      
a masters in machine learning for sure, university adds very important value of 'connections' mostly, I doubt if udacity can provide that.
ponderingHplus 2 days ago 0 replies      
I was in a strikingly similar position as you at the beginning of this year. In December 2015, I setup a plan to quit my job and take some time to self-learn Artificial Intelligence, when I was accepted into a master's program in Barcelona (UPC's* - assuming it's the same as the one you're considering).

This blogpost outlines what my plan and concerns were about the self-taught route:


Since then, I've been asked why I ultimately pursued the formal degree route, and this was my response:

"Without a formal CS background, I was pretty skeptical about my chances of getting accepted, but I applied anyways. I was so skeptical, that I convinced myself it wouldn't happen and set off to teach myself. But I ended up getting accepted into a Masters program in Barcelona, and I couldn't turn down the opportunity. I love Barcelona as a city, the tuition is reasonable and the program was inline with what I was looking for - a larger focus on application with foundation in theory as opposed to full on theoretical research.

I chose to do the conventional degree because of the above, plus the allure of receiving a piece of paper that people respect. Regardless of my thoughts on the real value of conventional degrees, it's hard to argue against their societal credit.

I'm new to this industry and pretty young, so take everything I say with salt, but my main advice would be to just build cool stuff. Whether you do it at a university or through autodidactism (learned that one from the HN thread), just work on cool projects. My naive hope is that people will care more about stuff you can actually build over a piece of paper with your name on it - but it doesn't hurt to have both."

That was in response to a thread about this guys blog, which gives some further perspective on the self-learning route:


I'd like to add, that I've since decided to do both. I'm using the curriculum I developed for myself with online courses to compliment my formal education from the master's program, which has been working well so far.

ps. If UPC is the program you're looking into, it can be completed in 1.5 years (3 semesters) instead of the full 2. The last semester is dependent on how long it takes to finalize your thesis. Also, if you have questions about the program (again, assuming it's UPC's), my email is available from the site in the first link.


tedmiston 2 days ago 0 replies      
What is your goal, as in, what type of job would you want to have post finishing either option?
Ask HN: What problems can techies solve to help world?
8 points by marmot777  2 days ago   21 comments top 7
p333347 1 day ago 2 replies      
Techies can only assist the scientists in bringing their successful lab experiments into the real world. I expect scientists to solve problems in two fields - agriculture and water resources (especially drinking water) - before tackling fancier things like interplanetary exploration, brain computer interfaces etc. I understand not all scientists (or their domains) are equal but I expect science to solve basic problems first. Science created the problem by making people live longer, so science must solve the problem as well (half kidding). Once a solution is in beta mode, the techies can go crazy building software and gadgets for it, which is what they do well.
Axsuul 5 hours ago 0 replies      
Solving important problems take a lot of customer research, domain knowledge, and years of developing product and finding product-market fit. You won't be able to come up with a MVP over the weekend. Naturally, the lower hanging fruit is first picked. But these services and products that first get built will become the shoulders that startups solving more important problems get built on.
dhruvkar 23 hours ago 0 replies      
The free market skews towards quicker gains. Most __important__ problems will, almost by definition, take longer to solve than less important problems.

Non-profits often fill this gap by solving an important problem until it's profitable to solve, at which point the free market can take over.

One problem that (in my view) is important, solvable, hard and profitable is rural electrification. There's ~1.2 billion people without access to electricity [0] and more with intermittent access only. The problem is, there's no one solution fits all. It needs to be chipped away methodically [1], building products and finding traction in different locales that allows the free market to work.

0: http://www.worldenergyoutlook.org/resources/energydevelopmen...1: I worked at a solar NGO in Tanzania.

mtmail 1 day ago 2 replies      
Have a look at http://wiki.openstreetmap.org/wiki/Humanitarian_OSM_Team. You can help by adding streets based on satellite images from home (armchair mapping). Or you can work on tools. Almost any tool used for openstreetmap can also be used to help areas (before and) after a major disaster happened.
maramono 1 day ago 2 replies      
IMO, first we need to solve the smaller issues, most importantly to have developers start making high-quality software consistently.

There is nothing that will get solved with the current "bugs are unavoidable" mentality, which is simply a mediocre and unprofessional attitude.

The way I see it, if mediocre developers try to "solve" world issues, the solutions will be mediocre as well, just like their software.

More of my thoughts here: http://ortask.com/why-your-mindset-might-be-setting-your-sof...

pesfandiar 1 day ago 3 replies      
As a techie, you can just help the economy by making/providing whatever widget/service the market needs. That creates employment and keeps people's retirement funds afloat. If the growth stops, many people will suffer.

If you actually want to make a huge difference, get into economics, politics, policymaking, etc. to affect the way markets work.

HeyLaughingBoy 1 day ago 2 replies      
There are important problems being solved by techies every day all over the place. Transportation, medicine, funding, housing, clothing. Why are you choosing to ignore all those areas and the businesses that are involved with them to focus on BeerMe?
Ask HN: How relevant are Master's degrees in tech today?
10 points by red_fox  1 day ago   6 comments top 5
hacknat 1 day ago 0 replies      
Most of the time you will hear this community downplay the importance of post-graduate work in finding success in tech. This is true. You, by no means, need a master degree to have a successful career, monetarily speaking, in tech. However, If you want to work on problems beyond consumer applications or B2B crud, working on serious technical problems (machine learning, compilers, OSes, embedded, etc), then a Masters will certainly help. Do you need it? Probably not, but it isn't the resounding "No" that you hear when asking about success in startups or the middle-ware teams of the big four.
a-saleh 13 hours ago 0 replies      
As far as I have seen, the thing that in mostly gets you a job is that you already had a similiar job somewhere else. The sentence for junior positions is "completed bachelor's degree in CS/Software Engineering or at least 2 years of work experience in field."

On the other hand, my two years of experience was "Sysadmin a server for a local church." and only reason why my local church needed sysadmins was because me and a friend of mine bought a server, collocated in a local ISP that a third friend worked at and decided "Hey, our church could use a website and we could be the sys-admins :-)"

To answer your question, I think the utility of Master in CS as well as learning through MOOC's is dwarfed by anything you can present as "Somebody already paid me money for a thing I did", if you want to primarily land a job.

When I thought about getting a master degree, I thought about these questions:

Do I see ever wanting to pursue some sort of academic career? I.e, get a phd, desire to write papers on obscure topics, e.t.c. then definitely.

Do I want to learn things that require at least somewhat well furnished lab? I.e. it is quite hard for MooC to offer a lab on side-channel attacks on security cards or hands-on with sensor-array networks.

Do I want to learn the theory more in-depth and does physical classroom help in this regard?

How does the cost compare? What do I get out of this credential-wise?

In my case I wanted to get masters in Information Security for these reasons:

1. I already endured 2 semesters of algebra and I.S. was one of the few that both interested me and would use the theory I have learned in BC

2. yes, one day I might go back to school to crank out few papers just for fun and the low probability of getting a proper academic title :)

3. school did have a few nice security lab courses present

4. having a course end with proper seated exam with lecturer present helps me focus on studying

5. I study in Czech republic, which means I have first 3 years of tuition paid for by the state. (Even if I didn't it is under 1000E/semester).

dhruvkar 1 day ago 0 replies      
I got into an ME (Masters of Engineering) program after a non-CS degree and working in the Industrial Engineering field.

I would say it was worth it for me, as I worked on FreeBSD servers to set up a system for deploying experimental modules to test security measures. I had zero experience with anything of that sort before.

I say find a professor willing to provide work (and pay) for your time in a Master's degree and it's completely worth it.

g051051 1 day ago 1 reply      
You can try the Ga Tech OMSCS. It's fully online, is the same as the on campus version, and costs about $8000.
new_hackers 1 day ago 0 replies      
Can you get a accepted for a MS CS without at BS CS first?
Ask HN: How do you motivate yourself?
32 points by e19293001  3 days ago   36 comments top 18
tromple 3 days ago 1 reply      
In general I stay motivated by reaching a base level of healthiness - physical, work, and social. The motivation comes naturally if I've met those needs.

I'm not a superhuman kettlebell-swinging crossfit soylent paleo junkie by any means, but I walk to work every day and bike a good amount using my city's bike-share. And I've started (over the course of 2 years, it's so tough!) to eat less-unhealthy food.

Being happy at work makes a big difference to my motivation, I'm able to channel some of that extra energy I get from feeling like I'm putting good effort in, into my side projects. I work 9-5 most days (as a programmer).

I find I'm more motivated when I keep in touch with people, and also when I work on projects that get me interacting with people who are excited about what I'm doing. For me at least, it's not as fun to work on a project if people I know don't think it's cool. That was a snippet from a Paul Graham essay I took to heart and I think it's true.

I also occasionally journal my thoughts down, which makes me feel calmer and more ready to approach a task.

williamkennedy 3 days ago 2 replies      
I have actually written about this a lot as it is one of those topics that I am fascinated with. The trick is not to try and motivate yourself but to build systems and processes to get things done regardless.

For me, it boils down to 3 things. Pre-planning, habits and elimination. I have written about each separately on my blog http://www.new2code.com/2016/06/deep-work/

I plan a lot of stuff on my Google Calendar. My whole days are planned in advance including free time. When I am learning a new language, I set aside time for study. If a friend asks me to hang out, I can just check to see if I have prior commitments. I also have the regular gym slot and after 2+ years, I am simply routine when it comes to exercising.

Next, learn how to build habits and routines. This saves a ton brain power. There is a great video on habit building


Also, check out a book by Charles Duhigg called The Power of Habit.

Finally, cut out the news and as much information as possible. Not watching the news added a ton of happiness to my life. This also cuts out distractions. Check out something called the Low Information Diet which goes into more detail as well as a book called Deep Work by Cal Newport

I also wrote a guest post on the blog Simple Programmer that goes into more detail on the willpower.motivation side of things https://simpleprogrammer.com/2016/09/07/limited-willpower/

I hope that helps. Largely I don't believe in long-term motivation, it is more to do with becoming routine.

sebg 3 days ago 1 reply      
"Discipline is remembering what you want" - David Campbell, Founder of Saks Fifth Avenue. So if you want to motivate yourself, then remember what you want. Then if you find you are not doing what is necessary, it means that you have to confront the fact that you may not actually want what you are telling yourself you want.
csallen 3 days ago 2 replies      
DHH once gave a talk at Startup School. Watching that talk invariably pumps me up and leaves me motivated for hours. (Specifically, it gets me motivated to work on personal projects that make money online.)

In general, reading about anyone's success is like a shot of motivation directly into my veins.

tmaly 3 days ago 1 reply      
The easiest for me is to just start doing something, even if it is a little thing. It may have been in the Power of Habit or another place. The person said if you wanted to get in the habit of flossing, just start with the front two teeth. Derek Sivers I think said something like do one pushup and what ends up happening is that you get to thinking, I am already down here why not do another one. This leads to a habit.

I approach this the same way when it comes to motivating myself to work on a side project. Another good approach I picked up is the 5 minute journal. You invariably end up reflecting on things you could have done better. This helps you to focus yourself and pay attention to where you are not getting the most out of life.

avitzurel 2 days ago 0 replies      
I race bikes and train like crazy.

I wrote about it before here: https://medium.com/@kensodev/how-bike-racing-is-making-me-a-...

Racing bikes (and training for it) creates so much structure in life. What you eat, how you sleep, when you recover. Even though I work most of the time from home, it gives a clear order to the day.

0x54MUR41 2 days ago 0 replies      
I heard that inner motivation (motivation from the inside, in other word, yourself) has more impact than outer motivation.

That was my problem too when I was preparing college entrance examination. My teacher told me that you can get a motivation by categorizing what you love, what you fear, and what you hate. Someone can get a motivation because he hates something. So, write it down! Repeat what you've written regularly before and after you're going to bed.

Side note: I would recommend James Clear's reading list for motivation [1].

[1]: http://jamesclear.com/motivation

ge96 3 days ago 2 replies      
Everything was handed to me in life. Not much but enough to get to middle class if I had just followed the rules and stuck with it. But I didn't. I failed out my physics/engineering program. I now work in a factory, and owe around 50K which I barely make 19K a year.

My life sucks. But I'm also young. I watch movies, sci Fi movies/shows which motivates me. I want that life. But then I try to program and I'm like "Holy crap. I'm so far away..."

I hate going to work I perform the same tasks over 6,000 in a day. Everyday is the same. I am wasting my life.

Motivation by fear isn't a good thing. Like the cliche, follow what you love.

Me I'm about trying to get out of my situation. Make money. I HAVE AN IDEA!!!

The problem is discipline. Sleep is a basic thing. Screw up your sleep pattern. You end up wasting time being awake and trying to fall asleep/not able to work.

Yeah discipline is the big thing. And true motivation from a desire/longing to do whatever it is with an internal driving force.

recmend 19 hours ago 0 replies      
Leaving the world a little better than I found it. Find opportunities where you can and want to make a difference, then do your best.
ohgh1ieD 3 days ago 1 reply      
It's very simple for me I just think that one day I'll be dead and that I just wasted my life and the only option to change that is to create something that has value to me and that motivates me.

But the more I think about it ... I guess it's fear, it's the fear of a meaningless life.

Eat, shit, fuck, breath, die ?

No thanks

mattbgates 2 days ago 1 reply      
My motivation at my age: Make my primary job my second job and make enough money in my startup so that it becomes my primary job.

How do I stay motivated to keep at it with my startup? Aside from enjoying doing what I do, developing web apps, I write down the potential profit involved that I could be making every month. Those are the numbers I want to be making that I'm currently not making and that is what keeps me motivated.

Money isn't everything.. that is certainly true! But making enough money to pay off my mortage, my credit card debt, my bills, and still have enough left over to donate to a cause and have some peace of mind is the underlying motivator.

siscia 3 days ago 0 replies      
There is a popular comment somewhere in the internet (I would guess on quota, but not sure) about this subject.

The point of this comment is that you don't need motivation you need discipline.

Motivation comes and goes, discipline stick around which is what you need if you want to build anything meaningful...

8611m 3 days ago 1 reply      
This is not very scientific, but it has worked for me. I have curated this list of YouTube videos some of which have helped me and some of my friends a lot in the last year. I watch 1-2 of these in the gym when I am doing my cardio (elliptical or treadmill) three times a week towards the end of my workout.


I am a very distracted person, and need constant reminders. I have designed my life in such a way to be constantly reminded of my priorities. Once, I decide I need to include an activity in my life (be it learning, workout, eating healthy), I set up a time and corresponding reminders/ alerts. This sort of planning and tracking helps tremendously stay focussed on only things that matter.

orky56 3 days ago 0 replies      
I think about the 24 hours in my day and see if the time I have spent/will spend expresses the priorities I have in my life. I create routines to ensure the decision-making is minimized as much as possible such that my habitual actions reflect my priorities. Lastly I consider the fact that will my future self think I am doing him a favor by the actions/systems I am putting in place. Motivation should be about putting yourself on the appropriate trajectory not just completing the individual action that leads to fleeting satisfaction.
just_observing 3 days ago 0 replies      
There is no one single unfailing way for me to do this.

Some days it will be closing X issues, or a cold beer, or a gaming session with a friend, or tracking down that one annoying bug, or seeing that my numbers are low and I need to up my game (which can conflict with long work to find that bug of course), or reading a book, going for a bike ride.

There are other ways I do it but no single thing hits the spot for every day and every situation. Having a stock of various methods works though and I'm always happy to add another.

JSeymourATL 3 days ago 0 replies      
Shane Parrish recently gave an excellent review on motivation, good food for thought--

Daniel Pink on Incentives and the Two Types of Motivation > https://www.farnamstreetblog.com/2016/08/daniel-pink-two-typ...

Cozumel 3 days ago 1 reply      
Eric Baker has some good insights http://www.bakadesuyo.com/2015/01/how-to-be-motivated/

I struggle to get motivated as well.

gjolund 3 days ago 0 replies      
Im motivated by my bills.
Ask HN: Moving from academia to tech?
9 points by stablemap  2 days ago   9 comments top 4
magneticnorth 1 day ago 2 replies      
What kind of job(s) do you think you're interested in?

I moved from academia to a data science job, and it wasn't as hard as I thought it would be.

My background: Math PhD from a top school, though my research was very abstract - not really related to machine learning, algorithms, or statistics. I had some coding experience in undergrad but none in grad school.

My path: I did the Insight Data Science bootcamp (http://insightdatascience.com/), which was very effective for me.

There are really two things I got out of the bootcamp that made it effective:

1) Connections

2) Impressive project(s) to show off & get your foot in the door.

You may be able to do these things without the help of a bootcamp, and I think especially if you're more interested in coding, there are a ton of good bootcamps that can provide you with the connections and last little bit of training to land a good job.

papaf 1 day ago 1 reply      
I know someone who moved from Postdoc level Physics to Machine Learning. He is a strong and capable member on one of the teams that I work with.

Its certainly possible, but my guess is the big challenge is persuading a company that this is actually possible.

His strengths are being to understand the mathematical concepts and use them as tools to solve real world problems. I do not know your subject, but I would recommend finding something in what you do and applying it to tech -- you should be aiming MUCH higher than throwing a web application together.

Edit: I'd also recommend applying to Google and not expecting to make through the interviews. The amount of effort in getting up to interview level there certainly helps in getting positions in less well known companies.

amorphid 1 day ago 1 reply      
Define tech.
kvulgan 2 days ago 1 reply      
PhD in ...?
Ask HN: Anyone already using the new GitHub Projects feature? Care to share?
11 points by ssaunier_  2 days ago   10 comments top 7
bigkahunaburger 42 minutes ago 0 replies      
This is a knee-jerk reaction to Gitlab's latest release and in its current state doesn't come close to anything technical teams need. I'm sure GH could build out projects with more advanced features, but in doing so they'd be choosing to kill off their integration ecosystem... when their partners (e.g. ZenHub, Waffle) are already doing it better.
eckyp 2 days ago 0 replies      
I did.

I personally find it missing a lot of features for working with cross-functional team (e.g. developers + designers + marketing).

I'd love to see this implemented:

1. filtering cards based on milestone / labels2. assigning labels, milestone, labels to note (bcs why the hell should I convert to issue before assigning)3. multiple repositories4. automatically group pull requests and related issues5. automatically move card to "Review" column when PR is sent6. automatically move card to "Done" when it is closed

I used to manage with waffle.io and love it so far. (I'm not affiliated any way with them, just a happy user)

altern8tif 2 days ago 1 reply      
Zenhub is still the better (more full-featured) option if you want to do project management in Github.

Not to mention that it's also free for small teams.

thecupisblue 2 days ago 0 replies      
Tried using it, will see if we will continue.The idea is good, but the execution not so much. If they want our designer to work with us on github, they need to let them drag and drop images into tasks. Also, no way to migrate current issues into projects as far as I see. Hope they improve it soon.
ohstopitu 2 days ago 1 reply      
While I don't use Github persay...I was using a similar feature on Gitlab. Here's a screenshot[0] of my board.

[0] https://i.imgur.com/4gcF4Qc.png

contingencies 2 days ago 0 replies      
Just had a look, it seems very fresh/undocumented and not up to regular Github standards. I couldn't even find a way to delete the test project I made. I would give it awhile to mature. Right now we just use issues, but we have a small team.
geoah 2 days ago 0 replies      
Are Microsoft Containers worth learning?
8 points by MrLabCoat  2 days ago   3 comments top 2
Annatar 2 days ago 0 replies      
That's a seemingly innocuous question with a highly subjective answer, which ironically has very objective consequences (pick a wrong technology, for example for wrong reasons like popularity, get stuck with all kinds of unnecessary problems, like lack of isolation, suboptimal performance, complex software lifecycle or data corruption, or all of that together, and I don't necessarily mean Microsoft here).

Depends on who you ask and what their experience is. What can we tell you? Everyone will tell you what their preferred solution is. Since it's a subjective question, one person will tell you to go ahead, another that it's pointless.

Why do you care what is going to be popular if you are building your own laboratory? Research which is the best solution; research them all. After all, that is the point of a laboratory, isn't it?

alexellisuk 2 days ago 1 reply      
Absolutely - if you want to "learn containers" I would start with Docker for Windows (that creates a tiny Linux VM) for a less painful start.

However if Windows is core to your workflow.. check out this from my fellow Docker Captain:


And the installation procedure for Windows Containers:


Take note that only nano-server will run on Windows 10 pro.

Feel free to get in touch on Twitter @alexellisuk

Attempting to disclose a social engineering vulnerability to Instagram
3 points by omfg  1 day ago   2 comments top
a_lifters_life 1 day ago 1 reply      
Could you try to contact some people on linkedin?
Ask HN: Do I need to inform visitors about LocalStorage?
7 points by nealrs  3 days ago   5 comments top 4
mtmail 3 days ago 1 reply      
In theory is the law applies as well. In practice I've never seen it mentioned on a website.


"The article is technology neutral, not naming any specific technological means which may be used to store data, but applies to any information that a website causes to stored in a user's browser. This reflects the EU legislators desire to leave the regime of the directive open to future technological developments."

ddgflorida 3 days ago 0 replies      
My sites use local storage and I inform the user - consider the possibility someone is using a public computer and you've stored locally what they though was private.
tedmiston 2 days ago 0 replies      
I feel like it depends on the audience of your product. In a general consumer product it might actually be more confusing given your user might have no idea how "any of that stuff" works.

I don't think I've ever encountered an app that's let me know in advance about its use of localStorage.

_RPM 3 days ago 0 replies      
I would implement pre mature optimization if I were you.
Ask HN: Has anyone been hired by the big 4 companies from outside the US?
7 points by employee123  2 days ago   14 comments top 3
guessmyname 2 days ago 1 reply      
I have interviewed with two "Big Corp" companies and during the interviews I asked about the possibility of an immigration sponsorship considering that I live in a South American country, and they have always assured that once the interviews are done and the company extends a job offer they can help during the immigration and relocation, not only to North America but also Germany, Scotland, Japan, Canada or any city where they have an office.

I wouldn't worry about that, just be sure to study a lot to improve your profile as much as you can, every skill counts considering the fact that they receive tons of resumes all the time, you have to differentiate yourself from the others.

PS: Since you mentioned being a front-end developer, I want to give you some advice with respect of your current learning strategy. A couple of days ago I interviewed for a position in the web development team of one of the "Big 4", my background is mostly on back-end development. After reading several articles from people who interviewed with the same company I realized that most of the questions they were asked were related to algorithms and data structures, so I decided to refresh those skills, bought the latest edition of the CtCI book. The day of the interview I was surprised to find that all the questions were regarding the DOM, basic CSS concepts, and new features introduced in the latest specification of JavaScript. During the ~40 mins of the interview I was never asked one single algorithm question.

ThePawnBreak 2 days ago 1 reply      
Probably at least 20-30% of big 4 employees are or were on H1Bs. Getting a job is very simple, but not very easy:

1. Get a good resume. They're not very picky here, if you have a couple of years experience programming professionally, it should be enough.

2. Apply online.

3. Get an interview.

4. Pass the interview (hard).

5. If you get an offer, you'll need to get an H1B visa to go to the US. It's ok, if you're unlucky they'll probably offer you a position in a different country, and you can transfer to the US after 1-2 years.

emilburzo 2 days ago 1 reply      
Can't help with your question, but I was wondering how did you get in touch with the European startups you worked for?
Ask HN: How to find results removed from Google under 'right to be forgotten'?
55 points by ch215  2 days ago   40 comments top 11
abro 2 days ago 0 replies      
To the best of my knowledge: you cannot. (I'm an EU-based SEO. I don't know everything, but i might be a good source.) Most of the search queries that contain human names will be marked as "Some results may have been removed under data protection law in Europe." no matter wether a removal really happened or not.

Afais this is the "best" data you get from Google for this topic: https://www.google.com/transparencyreport/removals/europepri...

When you look at the other transparency reports you'll notice that you're able to search through other types of removed results (e.g. copyright violations), but that this is not possible in the right to be forgotten area.

[Edit]But you could ask any big newspaper Website for help. They receive a notice in their Search Console when a result is taken down.

FatAmericanDev 2 days ago 2 replies      
Wouldn't that be in opposition to the spirit of the law, if they just moved the removed results to a second search engine?
ch215 2 days ago 1 reply      
To clarify, I want to shine a light on results wrongly removed: cases where freedom of expression, and the public interest in remembering, outweighs the right to be forgotten.
pokoleo 2 days ago 0 replies      
You're looking for Lumen[0] (formerly, Chilling Effects)

From Wikipedia[1]:

> The archive got a boost when Google began submitting its notices in 2002. Google began to do so in response to the publicity generated when the Church of Scientology convinced Google to remove references and links to an anti-Scientology web site, Operation Clambake, in April 2002.

[0] https://lumendatabase.org/

[1] https://en.wikipedia.org/wiki/Lumen_(website)

danso 2 days ago 0 replies      

> Can you provide more detailed statistics about the nature of these requests and removals?

> We have provided statistics about the scale of our delisting processupdated dailysince October 2014 in this Transparency Report and have added anonymised examples of delisting decisions to provide color. Additional data on common material factors is available for download here. We continue to explore ways to provide more transparency into delisting decisions in an operationally efficient manner and with due regard to the sensitive and private nature of the requests.

Retr0spectrum 2 days ago 1 reply      
Please use the data that you gather responsibly.

There are some people who abuse the system (who I hope you identify), and also some people who really should have the right to be forgotten.

As far as I can tell, using a US based VPN/proxy does not censor results - at least, it does not show the message.

Therefore, you just need to cross-reference the results from different geographic regions. However, it will be difficult to tell whether a certain result is missing due to censorship, or the fact that result rankings are slightly different for different countries.

Once you find a "suspicious" result, I guess you could try searching direct quotes from the article - If it doesn't show up in those results, then it's probably censored.

This process will need to be automated, if you want to check every name.

malux85 2 days ago 0 replies      
Put some contact info in your hacker news profile.

I can help you with this, email me

pitaj 2 days ago 3 replies      
Honestly, I don't understand how anybody can honestly think that there can or should be a "right to be forgotten." These laws are an abomination of freedom of information and are incredibly naive.
amelius 2 days ago 0 replies      
You can search for phrases such as "Unfortunately, the page we linked to was removed because of EU law". This will not give you the page itself though.
foobar000001 2 days ago 1 reply      
biot 2 days ago 1 reply      
How about: don't? Your time to report on it was when it was online. If someone has something removed under a right to be forgotten, reporting on that pretty much violates that right, no?
Ask HN: Can I be public about a interview process with a Company?
8 points by interviewiii  3 days ago   5 comments top 5
win_ini 3 days ago 0 replies      
I'd say - wait a week or two. See how you feel then.

You can post an interview "review" on glassdoor.com - there are thousands of reviews, including stories similar to yours. The companies can respond but don't know who you are(well, kinda), nor can they change your review.

Ultimately, as long as you make the post constructive - you should write a review. But - Don't write to spite.

brudgers 3 days ago 0 replies      
Depending on your objectives, it might be more constructive to ask the company the basis for the opinion that the solutions were incorrect. It could be that there were additional considerations that the company missed or vice versa.

On the other hand, if the goal is to publicize the nature of the coding challenge, then it really doesn't matter how one goes about justifying it. No matter how doing so is rationalized, one ought to be willing to live with the consequences of their actions.

Good luck.

JSeymourATL 3 days ago 0 replies      
> but I think they were wrong about some of the feedback.

Your interviews and code challenge feedback were not posted in a public forum. Neither should your professional opinion.

If you feel strongly about it-- compose a note to the hiring executive, informing him (in businesslike fashion) how & where their process failed. Take the high road, offer ways they can correct the problem.

Incidentally, even smart, well intentioned companies screw up the hiring process and miss out on great talent.

rajacombinator 2 days ago 0 replies      
You should weigh the upside and downside. Upside is likely: you feel slightly vindicated, get a few up votes and comments when you xpost to HN. Downside is likely: burning bridges with that company, damaging your reputation by making people think you're stubborn and immature and will leak things that should be private.

Best bet is just shrug it off and keep moving.

GFK_of_xmaspast 3 days ago 0 replies      
Have you considered the possibility that you were actually wrong?
How to escape an asterisk character on Hacker News?
5 points by SimeVidas  2 days ago   1 comment top
nprescott 2 days ago 0 replies      
You can use 3 asterisks - * to italicize a single asterisk:

 *** as such
Or you could always use a pre-formatted block:

 * just prefix with two spaces

Ask HN: Which language for interacting with AWS?
5 points by bakery2k  3 days ago   6 comments top 6
mrg3_2013 51 minutes ago 0 replies      
I use AWS CLI/boto
tedmiston 2 days ago 0 replies      
I feel like boto3 (Python) is a good place to start. I've used Boto 2.x quite a bit and it's fine as well.


Boto is actually quite a weird library in that the services are generated defined as json files and the service classes are instantiated dynamically at runtime from these json files (as opposed to being defined in Python classes). For example, this is the definition of the S3 service [1]. You might have noticed that the official AWS clients break normal Python naming conventions and this is the reason why, that said, it's a unique approach that leads to a lot less code to maintain.

[1]: https://github.com/boto/boto3/blob/develop/boto3/data/s3/200...

fiedzia 3 days ago 0 replies      
Official aws cli client is written in python and supports every aws feature, so you could not go wrong with that. I wouldn't touch PHP and Node - to fragile and messy to depend on them. So API-wise python would be my first choice, java second. Maybe Go if you need native performance (if you don't know then you probably don't).
jnbiche 3 days ago 0 replies      
I agree with others and say use Boto/Python if possible, since it's the "official" client. It's feature-complete and is pretty reliable based on my experiences.
borplk 3 days ago 0 replies      
If what you're doing is not too complex I recommend you consider using the AWS command line client.

You can script it for example in Python with the subprocess module.

anhsirksai 3 days ago 0 replies      
Boto framework!(completely in python)
Ask HN: What are some examples of well written C/C++ codebases?
6 points by seagoj  2 days ago   5 comments top 5
borplk 1 hour ago 0 replies      
ruraljuror 1 day ago 0 replies      
I will pass on recommendations from Nick Black:

9Some of the best code I can recommend includes: the core Linux kernel, OpenVPN,OProfile, OpenSSH, and the NPTL threading implementation from GNU libc. I recommendOpenSSL, the Linux PATA or TTY implementations, the SVR4 shared memory API, or theBerkeley Sockets resolver(3) API for examples of what not to do.Source: https://nick-black.com/dankwiki/images/8/85/Msadvice.pdf

malux85 2 days ago 0 replies      

They are a joy to read

       cached 19 September 2016 20:05:01 GMT