As a former bootcamp grad, please prioritize interviewing skills over development skills. once you get a good job, you can spend your free time on side projects but until then you need to practice on interviews not coding.
Sadly it's the reality of interviewing and I hate it but there is nothing you can do until you are an experienced dev and can leverage your power to say "I refuse to work or interview at companies with dumb interviewing processes."
I would definitely distinguish between html / css / javascript and server side application code, be it in ruby or python, I just didn't think working on the server side application logic completed the "full stack".
To me full stack means you are into the systems a bit too and would be capable of setting up the stack itself (and perhaps enhancing it, or setting up custom batch systems), not just working effectively within a larger space provided by the application frameworks.
But perhaps I just have the terminology wrong? Full stack developer = someone who works across the application stack, and I'm thinking more of "systems" or "backend" engineer?
Yes, I do feel you have the terminology wrong. I consider myself full stack and I work with Rails, Django, etc. I have interviewed with many companies with the title "Full Stack Developer" and most of them have not expected the type of experience you are talking about. I think you are talking essentially about a Systems roles.
When you are full stack there's usually an assumption that you are "better" on one side of the stack and won't be strong at everything. So a back-end focused full stack developer would be better at the things you are talking about while a front-end focused full stack developer would be much stronger in Javascript / CSS. The main thing is that you understand how an app works end to end and can contribute / fix bugs across the stack.
The term "full stack" often only seems to denote someone with both front- and back-end experience; anything below the server application is often considered the domain of "operations".
I do think it would be nice if the term carried more meaning, but given most companies are running their systems on top IaaS/PaaS offerings from Amazon/Google/Microsoft/etc and tend not to care about things beneath the application layer until they're making more money than sin it's fine as-is for the time being.
They were talking about front end dev, backend dev, and full stack dev. Those distinctions are only applied in web development. Grandparent post thought full stack meant knowing about deployment and setting up deployment environment too which goes beyond full stack into the realm of operations.
Outside of web development I haven't heard about such distinctions like backend or frontend. There are application developer, system developer etc.
I call myself full stack and mean what you mean. I typically have to explain that when I say full stack I mean "literally full stack" as in I have a working level of knowledge with every piece of the system from hardware/kernel to networking to databases to application.
I do agree that when people use the term though they just mean "I can code in a backend and a frontend language".
>>when I say full stack I mean "literally full stack" as in I have a working level of knowledge with every piece of the system from hardware/kernel to networking to databases to application
That seems like an impossible definition to fulfill by most humans today, though. I mean, how "deep" do you take it? Pre-processed code? Assembly code? Object/Machine code?
Computers today (especially server-based systems) are so massively complex that I don't see anyone possessing working knowledge of "literally" the entire stack.
And then there's the question of the depth of one's knowledge. I'd argue that the more you spread it out, the thinner it gets at each level of the stack, just by virtue of the fact that one has only so much time to spend on learning, practicing and keeping their skills up-to-date.
> That seems like an impossible definition to fulfill by most humans today, though. I mean, how "deep" do you take it? Pre-processed code? Assembly code? Object/Machine code?
There is a lot of dumb jargon, misleading labels, and wrong analogies borrowed from other fields that are popular in tech right now. You can call yourself whatever you want, but if you have never used gdb and call yourself "full-stack," you are being pretentious.
> Computers today (especially server-based systems) are so massively complex that I don't see anyone possessing working knowledge of "literally" the entire stack.
I literally have enough breadth of knowledge to figure out a problem at any level of the stack from top to bottom with some help from google/books. And no, I don't mean finding it on stackoverflow/stackexchange and copying an answer :). This is what I define as working knowledge, that I know enough to be able to debug issues in the subject with help from resources which I also know how to access. Depending on my familiarity with the particular piece of technology and the difficulty of the problem this may take me anywhere from seconds to weeks. I don't just say this either, I have actively debugged issues at most "levels" of the linux application/OS stack throughout my relatively short career so far.
Basically, you give me a problem and I have the tools I need to figure out the solution or root cause without help from any other team members(though help can certainly speed things along). The only question is going to be time.
> And then there's the question of the depth of one's knowledge. I'd argue that the more you spread it out, the thinner it gets at each level of the stack, just by virtue of the fact that one has only so much time to spend on learning, practicing and keeping their skills up-to-date.
My depth of knowledge in each area shrinks and grows as I need to use it. As said above though, I have just enough depth in every area to "be dangerous" as they say. I certainly have more breadth than depth in most things but I match or beat my peers in depth on the technologies I deal with daily.
From my experience I would say that what you are describing at the end there is a full-stack developer. It's someone that works across the application stack, not setting it up to make use of it. Although many probably can, it's just likely not their responsibility.
Id say some one who is comfortable working at all the layers 1-7 ie be able to design spec and set up (or supervise the set up) of a small office network
Well the revenue of US based businesses is at a significantly higher scale than most European technology companies. Specifically companies like Apple, Google, Microsoft, Amazon, Intel all make over $500K per employee (Apple is at $2m!). With such a high revenue to employee ratio, these companies can afford to pay developers at rates immensely above what we see anywhere else. And they should, since smart engineers who can move the needle even 0.01% are worth it. Since these companies hire such a high # of engineers, they tend to set the market rates of salaries in the cities they are based in. When you move out of the major cities, U.S. salaries drop significantly.
If Europe can build a few companies that churn out revenue at the scale of Google / Intel/ MSFT, European developer salaries will skyrocket. US companies with offices in Europe have helped salary increases, but really the continent needs a few Googles to really skyrocket salaries.
Let's take a case study here. Rackspace, a company that was just taken private, and Google.
They have almost identical P/E ratios, and the market cap for Google is 125 times that of Rackspace.
From what I can search around for, Rackspace has 6200 employees. Google has 53,600. Google makes roughly 15 times per employee in profit (not revenue) than Rackspace does. If Google's headcount to profits were the same as Rackspace's, the market cap of Google would be about 35 billion.
That being the case, heck yeah Google will kick down an extra 40k a year to an engineer. Makes perfect sense for them.
a) To build an ad business capable of handling $100m of ads. You need massive investments in sales, infrastructure, tools, etc. to build a business like that
b) They have one of the fastest growing user bases in the social space, their users spends an astounding amount of time on the app (estimated at 30 minutes per day), and their user base is the most targeted demographic for demographics. Also they have literally barely turned on the advertising machine and their initial forays have already hit a revenue run rate of $300M+.
So essentially they have a shitload of eyeballs, the eyeballs are growing massively, their eyeballs spend a lot of time on their app, and advertisers love those eyeballs. Their business valuation is based on massive potential, not current revenues, but their advertising efforts already show huge promise. There is almost no startup with anything close to their engagement, growth, and monetization potential and the last company that looked like them was Facebook. Hence, the HYPE.
To your point b... so it's all about bubbles? A race for eyeballs before they disappear to the next "new, cool" thing?
Because advertising isn't working for the people that sell "things." If social networks are supposed to create spending/buying in retail (both online and meatspace) they are not doing a very good job. Google: Retail sales 2016.
Fair point re: connection to the actual economy. But remember - the point of advertising is mostly not to increase sales overall, it's to steal sales from your competition in a zero sum game.
Agreed. As a relatively light user (relative to friends), I easily spend hours a day with the app open. It's easily the most popular app for people in the teenage demographic, and anyone who's spent any amount of time with teenagers will realize this.
The way Snapchat is designed is basically anti-Mom-and-Dad -- you get to choose who each message will go to specifically (like texts), and everything disappears after it's been sent or opened. For a parent trying to monitor their kids on Snapchat, there's really not that much you can do.
I spend more money in a month at 25 than I did in a year at 18 and with less thought put into it too. I would have assumed people like me would be the primary advertising target demographic.
some possible theories:
-teenagers may have less disposable incomes, but they are far less rational and discerning in their purchases. they make purchases much more based on emotion and trends, rather than utility or value. yes, i also have more money at 25 than 18, but at 25 my purchase decision is informed by different reasons because i'm making my own money now so i need to be smarter about how i spend it.
-teenagers are at the brink of adulthood. if you can successfully get someone in that age to buy in, there's a good chance they will remain loyal to your brand. e.g mcdonalds marketing happy meals to kids to encourage them to continue "lovin it" as adults.
-teenagers are far more "hivemind", so if something catches on with a popular group, aka the thoughtleaders or trendsetters, the marketing effect cascades across the entire landscape very quickly.
As a coding bootcamp grad, I agree. I think bootcamps are better for mid to large companies actually where you will get mentorship and processes to help you graduate from being an apprentice to a contributing member of your team.
Many of my bootcamp colleagues at small stage startups regretted the decision.
Which is why access to a competent education is a basic requirement for a functioning democracy.
In my opinion, we aren't there yet since there are huge disparities between education quality across the public school system. One solution (IMO) is to standardize funding; today school districts rely on local funding which can result in tremendous funding disparities (and by extension, disparities in education quality).
A pretty ridiculous statement given that a VC pays close to 20% income tax while these well paid engineers are taxed at almost double that %. The VCs carried interest tax loophole has gone too far, not market competition for engineering salaries (which was previously priced fixed through non-poaching agreements).
"The engineers are getting paid too much so my startups can't convince them to work for equity because of the free market while my entire industry avoids paying taxes and stiffs America." Cry me a river, vc.
> A pretty ridiculous statement given that a VC pays close to 20% income tax while these well paid engineers are taxed at almost double that %. The VCs carried interest tax loophole has gone too far, not market competition for engineering salaries (which was previously priced fixed through non-poaching agreements).
The problem rather is that it is (from bureaucratic-legal-financial overhead) hard for an "ordinary" person to become a VC. That is where you should demand change for more justice.
> Benefit Corporations: 1) have an expanded purpose beyond maximizing share value to explicitly include general and specific public benefit; 2) are required to consider/balance the impact of their decisions not only on shareholders but also on their stakeholders; and 3) are required to make available to the public, except in Delaware, an annual benefit report that assesses their overall social and environmental performance against a third party standard. Such report does not need to certified or audited by a third party, but use the standard as an assessment tool.
We opted against a non-profit because it's vastly easier to distribute funds quickly to projects under this structure (think Kickstarter – also a benefit corp) and because the IRS seems to deny charitable status for organizations that build open source software.