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.
Bonus points for using 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.
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.
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.
Long term storage https://code.facebook.com/posts/1433093613662262/-under-the-...
Facebook is the problem a lot of people try to get rid of.
VR through Oculus
Better Facebook, Instagram, Messenger, WhatsApp
Leaps in AI
Internet across the world
Their At Work products are being refined all the time.
And as mentioned they have plenty of open source stuff.
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.
What I remember about locking in: instant articles, live video, favor facebook content over external links and some failed apps (paper, notify).
*** as such
* just prefix with two spaces
Or Lua: https://github.com/LuaDist/lua
They are a joy to read
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.
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.
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.
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.
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.
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.
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!
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).
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.
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.
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.
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.
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.
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.
My 2 cents.
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.
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.
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.
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.
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! :)
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.
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.
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.
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.
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.
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...
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.
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.
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!
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...)
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.
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.
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.
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
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).
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.
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.
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.
 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.
I say this as a person who is pretty much in the same boat.
> I can solve most problems correctly given enough time > (usually 2x+ longer than interviews).
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."
I myself had a terrible time with McKinsey style case interviews, which is sort of a cousin to tech interviews.
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.
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.
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.
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.
- 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 :)
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.
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.
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.
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.
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.
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).
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.
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.
Search youtube for Neil deGrasse Tyson on dyslexia
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 :).
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!
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?
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.
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.
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.
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.
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.
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.
There are many options in life and computer science is not for everyone.
It sounds like you are running into problems with performance anxiety in interviews. Fix that.
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.
It also takes time to become good at it. I was pretty useless the first three years of my career.
2) you have done enough prep. Get some real world experience.
3) make them want you. Establish yourself.
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.
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.
> 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.
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.
- 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 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" 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. 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).
 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.
 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.
 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.
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.
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.
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.
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.
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.
Since the goal is to network, you want to maximize your time there. I'd elect to go through the full 2 years.
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.
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.
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.
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.
"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.
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.
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 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)
Not to mention that it's also free for small teams.
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.
> 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.
> 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.
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.
I can help you with this, email me
This also filters companies to an extent. I would rather work for a company that values the content of the resume over the presentation.
Template (LaTeX): http://willem.co/cv/wp_resume_template.tex
Awesome Resume Templates (LaTeX): https://www.rpi.edu/dept/arc/training/latex/resumes/
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:
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.
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.
* 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.
I've taken the source code from here https://github.com/jglovier/resume-template and made changes according to my requriement.
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.
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.
Usually, this means an operational component where you can improve on efficiencies and save on costs, or a sales and marketing component where you can directly drive revenue.
The ability to straddle multiple disciplines and communicate effectively in each is valuable.
The other option is to start your own business, i.e. services, consulting, etc. $300K isn't that much in terms of annual net income. This is still doing what I mentioned above.
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.
Full disclosure- I'm currently in that program and loving it.
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.
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.
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 , where you could focus on ML.
 https://www.coursera.org/specializations/machine-learning https://www.omscs.gatech.edu/
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.
Disclaimer: I work at Udacity, in case you didn't realize by now :)
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.
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.
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 .
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.
In general, reading about anyone's success is like a shot of motivation directly into my veins.
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.
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.
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.
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.
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 ?
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.
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...
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.
Daniel Pink on Incentives and the Two Types of Motivation > https://www.farnamstreetblog.com/2016/08/daniel-pink-two-typ...
I struggle to get motivated as well.
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.
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.
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
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?
Worse, "can't see stop sign" is currently easy to spot and debug; in your proposal, this would require retooling the world over.
How many stop signs are there in the world? That almost sounds like a Fermi problem...
I've used AWS, GCloud, DO in production and Heroku for side projects.
That's 90k for .6% of a company. Which puts the companies valuation around $15,000,000. Seems high for company about to bring on their first technical hire(I'm assuming).
And remember there are several downsides to equity like
- It's highly variable.
- It's a lot easier to screw you out of equity than cash.
- It's a lot less liquid, you might not get any money for years.
If you think that now, I wouldn't do it. Or instead, offer to contract part-time to the startup alongside your current gig.
I would also weigh where you're at in your life (do you value the extra money and the extra free time sufficiently more to be a contractor or not?).
I've done seed stage, early founder style, and mid-stage startups. IMO engineering is much more fun at the former; work-life balance (what's a vacation?), and comp are much better at the latter. Different people place different amounts of value on these things though.
"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."
I don't think I've ever encountered an app that's let me know in advance about its use of localStorage.
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.
Best bet is just shrug it off and keep moving.
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.
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.
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 . 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.
You can script it for example in Python with the subprocess module.
I'm just a guest, not a host. No horror stories on my side. All the hosts have been awesome.
If you're both male and you have no prior health history of any sort, you can also go direct to Kaiser, Anthem, Blue Cross, &c and buy private insurance. There will be a medical questionnaire to fill out, and it'll take a little while to be approved, but it will ultimately be cheaper than the marketplace plan.
However you do it, do it carefully and follow up with your provider to make sure you're enrolled properly. Ours screwed up a bunch of stuff (both enrollment and billing) and we have some horror stories about the results.
Everything goes through the healthcare exchanges now. Just go through that process.
If you're both young and healthy, don't have spouses and/or children, I would recommend just getting a catastrophic plan for now.
Unless you are a senior, you probably don't qualify for Medicare. You may qualify for Medi-Cal (California's Medicaid plan), which is a very different thing.
Covered California should identify any eligibility for either Medi-Cal or Covered CA exchange-plan subsidies.
Section 3.5 and 4.1 of the above paper have more information.
edit:So I guess really it's down to:
1. The fact that square images are much easier to work with
2. The images are cropped to 256x256 because it's a convenient average size for imagenet
3. The 224/227 sizes are used to allow for the extraction of random patches for translation invariance
And also this (incomplete) test suite for a language interpreter:
Other than that I really love well-written shell scripts that do their job.