What is truly a waste of your personal time?

Answer by Nikant Vohra:

  • Checking your inbox throughout the day for new emails
  • Scrolling through the endless Facebook feed hoping to find something interesting
  • Watching cute cat or baby videos on youtube whole day
  • Thinking too much about the past or future
  • Making project reports, assignments or presentations just for the sake of it.
  • Whatsapp, Snapchat, Messenger and other similar chatting apps
  • Vampire Diaries, Suits, Big Bang Theory and other TV Series
  • Discussing about people rather than ideas
  • Making resolutions, To Do Lists and timetables and never following them
  • Making meaningless connections on Facebook or Twitter and calling them friends
  • Always following the footsteps of others and never following your heart or passion
  • Caring about what others might be thinking about you
  • Becoming too comfortable with your life and not challenging yourself to become better each day.


If you liked this answer check out some of my other stuff at Nikant Vohra

What is truly a waste of your personal time?


Why do some developers at strong companies like Google consider Agile development to be nonsense?

Answer by Jasmine Adamson:

Agile is bullshit, that's why. OK let me qualify… The Agile Process is perfectly fine, and it addresses the physical and psychological aspects of managing software development teams quite well. The bullshit comes in when a team or company makes the statement that "we are doing Agile" because they aren't. So, to clarify, Agile itself is a good process, but when someone says they are "doing Agile" that statement is bullshit. Always.

Programmers like things well-defined. When you tell me we're going to do The Agile Process, I expect an organization that follows these principles: Principles behind the Agile Manifesto

Those principles are well defined, even beautiful. When all of those principles are taken into account and lived every day, you have a well-defined, even beautiful process. When you leave out even one of those principles, it all goes to hell, you're not doing Agile any more, and people who know the Agile process will recognize that immediately, as I have done in every single shop I've ever worked.

I've worked in "Agile" development shops for the past 8 years, so let me tell you the reality, with relation to the principles, and I think you'll understand why "Agile" is bullshit…

1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. – My customer right now is another business unit. I have never met them and I have no idea what they do. This is the reality in most companies. We don't even know the customer well enough to "satisfy" them, and certainly not well enough to make it job one.

2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. – LOL! Nobody accepts changing requirements. It is universally hated, but it's the second Agile principle!

3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. – Some companies do this quite well, but most teams aren't managed well enough to break software up into reasonable chunks for Agile time-scales. Delivery schedules are often based on large updates rather than small ones. Big updates isn't Agile.

4. Business people and developers must work together daily throughout the project. – LOL! Again, this isn't really done. I don't think I've ever spoken to any of my customers on my current project. In past projects this has been hit and miss, and mostly based on organizational structure rather than anything meaningful. I can't talk to my customers because "they are above me" or "they are in another state" or whatever. Developers and business people working together is extremely rare. Most companies have a go-between who is supposed to facilitate this relationship, but it never works very well. I need to talk directly to the person using the application, NOT their manager, who doesn't really use it, and certainly not to the manager of their manager, through my manager – which is the typical case. Requirements are often determined by a person two levels up from the actual users and communicated through representatives, never directly from user to developer.

5. Build projects around motivated individuals. – Most people don't know what this means. What it means is low level employees typically have the best ideas for software, and they are typically motivated to solve those problems because it will make their lives easier. Projects should be structured around those desires, which will affect the company bottom line directly by making workers more effective. Have you ever worked in a company where the lowest level employees are deciding what software should be built? Don't make me LOL, again.

5a. Give them the environment and support they need, and trust them to get the job done. – This is about developers here. Have you ever worked anywhere that you had all the tools, all the access permissions, and all the gadgets you needed to be most effective? Getting a good set of monitors is worse than a trip to the dentist in most companies. In one of my recent positions, it took three weeks to get me a computer that could run Visual Studio, and that was after I had told them two weeks before my start date, the exact specs of the computer I would need. Developers are rarely "trusted" either – usually we are told exactly what to do and when to do it rather than being given a job and a deadline and left on our own.

6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. – You mean to tell me we can't do everything with IM and email? Seriously? Yes. Seriously. When a team is spread out all over the world and never looks each other in the eye, it hurts. This is particularly true for interaction between developers, but also important for interacting with customers. My most effective method of improving existing software was to stand behind someone and actually watch them use it. In many companies you just can't do that, even if you know who the customers are, they are "too busy" to talk to you, or it's impossible for some other reason. In-person interaction just isn't what it used to be. Companies don't think it's valuable.

7. Working software is the primary measure of progress. – And yet, nobody measures that. What do we measure? Defect rates, hours worked, things like that. We almost never measure the thing that matters – did the customer get a working feature? How many working features did we release? Were they big features, medium ones, or little ones? Nobody knows.

8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. – What this means is everyone works 30 hours per week on development and 10 hours on managing themselves and their workload, communicating with others, administrative stuff, etc. This can go on forever. What many companies do is demand overtime occasionally, and what some companies do is demand overtime quite often, and this is not sustainable. An Agile team rarely goes into emergency mode and pulls all-nighters. (You're kind of always in emergency mode)

9. Continuous attention to technical excellence and good design enhances agility. – Most companies do an ok job of this, but technical excellence is often pushed to the side in favor of software that works. This is, in my opinion, the correct trade-off (principle 1 and 7)

10. Simplicity–the art of maximizing the amount of work not done–is essential. – Most teams simply don't spend enough time on this. A sense of urgency often overrides careful planning. The problem here is careful planning makes things get done faster. During the planning stage it feels like you're not getting anywhere, but you are setting up for a quick sprint. This setup is often overlooked, and we end up with not only complicated software, but complicated development habits, complicated code, and generally poor software design. This slows down maintenance and new development, as we try to fit into poorly designed structures that become ingrained and impossible to improve. "This new feature is poorly designed because the application it integrates with is poorly designed" can go on forever.

11. The best architectures, requirements, and designs emerge from self-organizing teams. – Teams are organized by management, almost never by themselves. This is just a corporate culture problem, and it's very hard to overcome. Sometimes in startups and younger companies you can promote this idea and have it work, but in most companies it just doesn't work.

12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. – Many companies do an ok job of this, but it's often in the form of "performance reviews" and it doesn't have the flavor we really want. What Agile wants is "lets all sit down together and look at what we did and how we can be better next time, AS A TEAM" – but what usually happens is individuals are evaluated against arbitrary and subjective measurements, and teams almost never implement any process improvements based on those evaluations.

So, Agile is bullshit because nobody embraces the principles and puts them to work, but they still say they are doing Agile. This is extremely frustrating because developers know that if we did these things we could be way more effective.

(Maybe that's not what you're looking for but I've been wanting to write that for a long time now)

Update: Some people are taking this the wrong way. This is not a critique of Agile itself, it's an answer within the context of the question. It's an explanation of why programmers "consider Agile to be nonsense/bullshit"  I'm NOT making the case that the Agile process itself is bullshit. This is just why "many" programmers say it is, which is a given of the question. This is, of course, opinion based on my own personal experience but it's clear that many people agree with me on this.

Why do some developers at strong companies like Google consider Agile development to be nonsense?

What is a data scientist’s career path?

Data Scientist Career Path :)

Answer by William Chen:

My friends and I interviewed Jonathan Goldman, who is currently Director of Data Science and Analytics at Intuit. He's a rare example of an extremely experienced data scientist with a relatively long career history in data science! Check out his LinkedIn at Jonathan Goldman.

I wanted to share some parts of his interview to share what a data science career progression looks like for one of the earliest data scientists in the industry. Specifically, Jonathan's career progressed in the following order:

  1. Bachelors in Physics at MIT
  2. PhD in Physics from Stanford
  3. Business Analyst at Accenture
  4. Data Scientist at LinkedIn, becoming lead of Product Analytics team
  5. Co-founded Level Up Analytics, a data science consulting firm
  6. Startup acquired by Intuit, where he became Director of Data Science and Analytics

A bit about Jonathan:

Jonathan is currently Director of Data Science and Analytics at Intuit. He co-founded Level Up Analytics, a premier data science consulting company focused on data science, big data and analytics which Intuit acquired in 2013. From 2006–09 he led the product analytics team at LinkedIn which was responsible for creating new data-driven products. While at LinkedIn he invented the “People You May Know” product and algorithm which was directly responsible for getting millions of users connected and more engaged with LinkedIn.

He received a Ph.D. in physics in 2005 from Stanford where he worked on quantum computing and a B.S. in physics from MIT.

On Jonathan's Transition from Bachelors to PhD to Consultant at Accenture

Jonathan finished his Bachelors in Physics from MIT. He wasn't quite sure what to do with his future afterwards, so he applied to PhD programs. Slowly, he realized that the academia life was not for him. He joined Accenture as an analyst, as he was interested in energy and didn't want to do a postdoc.

I completed my Bachelors in Physics at MIT. I just absolutely love math and physics. I actually loved a lot of other fields as well, but knew I wanted to stay with math and physics in particular. I also absolutely loved MIT — it was the perfect place for me. When it came to graduation, however, I still didn’t know what I wanted to do with my future. I knew I wanted to do something more in science, but I didn't know if I definitely wanted to be a professor. I ended up applying to Ph.D. programs but still wasn’t certain if that was what I wanted to do.

I also applied for a few jobs, but was just not excited about any of the jobs I saw, and how they would leverage my skills. In comparison, grad school was exciting since I would get to work on fundamental research there. At the time, I was really excited about what was happening in the world of quantum computing.

I got into Stanford, and I found an advisor who was specifically working on quantum computing. So I came out to Stanford and liked it for a while, but towards the later part of my Ph.D. recognized I wanted to something else. Research was hard and not as rewarding in the short-term — it took me seven years to get the results that I needed to graduate. It was in my fifth or sixth year that I thought, "I want to do something that has a little bit more immediate impact.”

The parts of the Ph.D. program I loved most were when I was actually getting the data, analyzing it, and iterating very fast. I had these experiments I'd have to run for 30 hours, and basically after that, the system would shut down, restart my experiment, and it would take a day or two to get the system to reset. It was during this period that I was getting this amazing data, make a hypothesis then and test it. I loved the actual thinking, the theoretical aspects of it, what that told me to do with the experiment, and what parameters to explore.

Towards the end of my program, I got involved in some entrepreneurship activities at Stanford. I got involved in this organization called a nanotechnology forum, where Steve Chu, Stanford physics professor and later the Secretary of Energy came to speak. A lot was happening back in the early 2000s in that area. I was trying to go into that area, looking at solar energy technologies — I was very excited about that. But then I looked at a few of the solar technology companies, and the basic approach that they had was, “Hey, you get to work on this technology as a postdoc, and if it works, you’ll get a full-time job. If not, that’s a nice postdoc for a year or two.”
That just didn’t seem appealing to me.

At the end of graduate school, I was looking for a job, and I knew at that point I just did not want to stay and do a postdoc. I ended up going to the consulting firm Accenture, and I was excited about going to work in energy. I had been working on energy-related stuff, and I was getting more excited and interested in that. I wanted to work in strategy for Accenture — the focus was in the utility/energy sector, especially in the natural gas market.

So, I was working for a little while on natural gas strategy for one of the partners, and that was fun. I got put on a project to work at a utility company, and it was good to get that exposure — to find out what the corporate world is like. What is it like to do consulting? What’s it like to work in this company? How do they operate? I actually learned a lot about how to communicate and how they work; it’s such a different world from academia.

On Jonathan's Transition from Accenture to LinkedIn

Jonathan left Accenture looking for a more technical role, and was blown away by the people and the data at LinkedIn.

At that point where I was thinking, “Let me see if I can do something a little more technical.” I felt like I learned what I needed to learn so I was trying to find new projects. I started looking around to new places, including LinkedIn. Initially it seemed like it was a recruiting platform and I wasn’t that excited about it, but after I went and met with various people there, learned about their data, and learned about what they were thinking about, I thought "Wow, this is awesome."

Why Jonathan Found LinkedIn Awesome

Jonathan transitioned to being one of the first data scientists at LinkedIn, and was one of the original creators of LinkedIn's now famous People You May Know algorithm. Jonathan is profiled in Data Scientist: The Sexiest Job of the 21st Century, one of the foundational articles of data science.

Well, what really excited me was thinking, “Well, look, you have this data about people's careers, where they went to school, where they are now working, what they have done in their careers, and descriptions of their past jobs. So how do I help people get the right job?” It's a problem that actually felt very personal. While I'm trying to find the right career for me, I could help work on solving that problem for others at scale. 

The data was all there, and I could ask questions about the data very quickly. It was exactly the part of the Ph.D. program that I liked. Suddenly I didn't have to deal with the experimental apparatus which took me two years to build. It was like, boom, I have the data, and it's actually very interesting. I was learning all these new techniques and it was great.

Within two weeks of starting, I had already felt that this was my dream job. It was awesome, and I totally loved it. I found people even more collaborative in companies than they were in university research – we were all working to help the company do well and make a dent in the universe. In academia you also try to make a dent, but it was very often your own dent. Academia becomes a very competitive world since you have to make a name for yourself to succeed. Not that this doesn’t happen in the business world but teamwork, in my experience, is more highly valued because it really does take a significant effort from many people to make something interesting happen.

On Jonathan's Transition from LinkedIn to Data Science Consulting to Intuit

After his tenure at LinkedIn, Jonathan Goldman started a data science consulting firm, Level Up Analytics with Lucian Lita his wife Anuranjita Tewary. His company Level Up eventually became acquired by one of their clients, Intuit. Jonathan is currently Director of Data Science and Analytics at Intuit.

The three of us saw this opportunity — the demand for data science and building technology that would help solve data science problems. We saw a huge need that was just constant, and thought we could build a premier consulting firm and we would go to these companies and help them transform their businesses, while hiring people that we really liked working with.

The amazing thing was that we were able to get really good talent, get really good clients, and work on really challenging problems. There weren’t that many people doing exactly what we were doing — no-one else did the full end-to-end, including “What’s the business problem you’re facing? Where’s the place we can have the most impact? What technology might need to be built or deployed? What algorithms and analysis need to be done? We could do the full stack — I think a lot of companies really liked that approach. 
One of our clients, Intuit, after we got to know them and they got to know us, approached us about getting our entire company focused on Intuit — namely they wanted to acquire us. We really liked the problem they were working on. They were fundamentally changing people’s lives by making it easier to manage their finances, do their taxes and run a small business. It’s actually quite an interesting problem because they see so much of the economy. They are really truly one of the few companies that I think is mapping the world’s economy. You could say that LinkedIn is mapping the talent economy, but Intuit is actually mapping the real transactions that are happening. I don’t know any other company that has such interesting data. The impact on the economy and economic wealth is profound.  To me, it was a good mission to be a part of, and I really liked the culture and the people.

This is an excerpt from Jonathan's full interview in the upcoming Data Science Handbook.  Follow the link to download three chapters for free!

What is a data scientist's career path?

How can I print 1 to 100 in C++ without a loop, GOTO or recursion?


Answer by Brian Bi:

#include <csetjmp>
#include <iostream>
using namespace std;
int main()
    jmp_buf b;
    int x = 1;
    cout << x++ << endl;
    if (x <= 100)
        longjmp(b, 1);
    return 0;

Usually, when this problem is posed, use of setjmp()/longjmp() is disallowed as well.

How can I print 1 to 100 in C++ without a loop, GOTO or recursion?

How do data scientists use statistics?

Answer by William Chen:

Here are…

7 ways data scientists use statistics

1. Design and interpret experiments to inform product decisions

Observation: Advertisement variant A has a 5% higher click-through rate than variant B.

Data Scientists can help determine whether or not that difference is significant enough to warrant increased attention, focus, and investment.

They can help you understand experimental results, this is especially useful when you're measuring many metrics, running experiments that affect each other, or have some Simpson's Paradox happening in your results.

Let's say you're a national retailer and you're trying to test the effect of a new marketing campaigns. Data Scientists can help you decide which stores you should assign to the experimental group to get a good balance between the experimental and control groups, what sample size you should assign to the experimental group to get clear results, and how to run the study spending as little money as possible.

Statistics Used: Experimental Design, Frequentist Statistics (Hypothesis Tests and Confidence Intervals)

2. Build models that predict signal, not noise

Observation: Sales in December increased by 5%.

Data Scientists can tell you potential reasons why sales have increased by 5%. Data scientists can help you understand what drives sales, what sales could look like next month, and potential trends to pay attention to.

See What is an intuitive explanation of overfitting? to understand why its important to only fit on signal.

Statistics Used: Regression, Classification, Time Series Analysis, Causal Analysis

3. Turn big data into the big picture

Observation: Some customers only buy healthy food, while others only buy when there's a sale.

Anyone can observe that the business has 100,000 customers buying 10,000 items at your grocery store.

Data Scientists can help you label each customer, group them with similar customers, and understand their buying habits. This allows you to see how business developments can affect certain groups of the population, instead of looking at everyone as a whole or looking at everyone individually.

Dunnhumby breaks down grocery shoppers into groups including Shoppers On A Budget, Finest, Family Focused, Watching the Waistline, and Splurge and Save [1]

Statistics Used: Clustering, Dimensionality Reduction, Latent Variable Analysis

4. Understand user engagement, retention, conversion, and leads

Observation: A lot of people are signing up for our site and never coming back.

Why do your customers buy items from your site? How do you keep your clients coming back? Why are users dropping out of your funnel? When will they come out next? What kinds of emails from your company are most successfully engaging users? What are some leading indicators of engagement, activity, or success? What are some good sales leads?

Statistics Used: Regression, Causal Effects Analysis, Latent Variable analysis, Survey Design

5. Give your users what they want

Given a matrix of users (customers, clients, users), and their interactions (clicks, purchases, ratings) with your companies items (ads, goods, movies), can you suggest what items your users will want next?

Statistics Used: Predictive Modeling, Latent Variable Analysis, Dimensionality Reduction, Collaborative Filtering, Clustering

6. Estimate intelligently

Observation: We have a banner with 100 impressions and 0 clicks.

Is 0% a good estimate of the click-through-rate?

Data Scientists can incorporate data, global data, and prior knowledge to get a desirable estimate, tell you the properties of that estimate, and summarize what the estimate means.

If you're interested in a better approach to estimating the click-through rate, check out What are the advantages of Bayesian methods over frequentist methods in web data?

Statistics Used: Bayesian Data Analysis

7. Tell the story with the data

The Data Scientist's role in the company is the serve as the ambassador between the data and the company. Communication is key, and the Data Scientist must be able to explain their insights in a way that the company can get aboard, without sacrificing the fidelity of the data.

The Data Scientist does not simply summarize the numbers, but explains why the numbers are important and what actionable insights one can get from these.

The Data Scientist is the storyteller of the company, communicating the meaning of the data and why it is important to the company.

The success of the previous six points can be measured and quantified, but this one cannot. I'd say this role is the most important.

Statistics Used: Presenting and Communicating Data, Data Visualization

Follow my blog at Storytelling with Statistics

Chinese Translation: 数据科学家的7种统计学使用场景 | 大数据观察

TL; DR – With statistics, data scientists derive insights to encourage decisions that improve product or business, distilling the data into actionable insights that promote the vision of the company.

For a similar answer I wrote on this topic, check out How much of statistics/math do you need to work on as a data scientist?

[1] – dunnhumby & hack/reduce: A Product Launch Challenge

How do data scientists use statistics?

What are the upsides of being a data scientist?

Answer by William Chen:

I selected three quotes from the first three chapters of the Data Science Handbook (these 3 chapters are available for free!) that answer this question very well.

Data science exposes you to many parts of the business

As a data scientist, you're part of the feedback loop for many of the features and decisions that are happening in the company, both within your product team and outside of it. You get to touch a lot more surface area in the company.

I think what data gives you is a unique excuse to interact with many different functions of a business. As a result, you tend to be more in the center and that means you get to understand what lots of different functions are, what other people do, how you can interact with them. In other words, you’re constantly in the fight rather than being relegated to the bench. So you get a lot of time on the field. That’s what changes things. – Dj Patil

Many organizations are seeking ways to better use their data

It’s incredibly exciting, and it’s still in an early phase. I’m not going to go into the cliché of how much data we’re collecting and how all of these organizations are collecting more and more data. Many people have talked more eloquently than I can about that. But it’s true. Organizations have tons and tons of data, and they don’t necessarily know what to do with it. They’re starting to think about what to do with it, and they need help from people like us to actually do that work. – Michelangelo D'Agostino

Data science gives you tremendous versatility in your career

Because of the pace at which the world changes, the only way to prepare yourself is by having that dynamic range. I think what we’re realizing also is that different things give you different elements of dynamic range. Right now data is one of those because it’s so scarce. People are getting the fact that this is happening. It gives a disproportionate advantage to those who are data savvy. – Dj Patil

What are the upsides of being a data scientist?

As a startup CEO, what is your favorite productivity hack?

Answer by Auren Hoffman:

Focus.  Do not multitask.  Do fewer things.

Doing fewer things
The biggest mistake most CEOs make is that they try to do too much.  The real winners are the ones that do fewer things … but do them great.  Of course, this is not just true for CEOs — it is true for everyone.

Do not to multitask — do tasks in series, not parallel
Be totally focused on the thing you are doing while you are doing it.  Do not multitask.  If you find yourself reading emails in a meeting (or reading Quora), then you probably should not be in the meeting (or the meeting needs to be run better). 

If you are working on a task (like reading a legal document), mentally allocate time to only devote to that task (like 20 minutes).  During that block, do not do anything else.  If you finish early, you can reward yourself with doing something else but only if you finish early.

Do fewer things — say "no" to almost everything
When you are a CEO, you often have lots of interesting opportunities.  As you become more successful, the opportunities become more and more interesting.  Do not fall into the trap of of saying "yes" to most things.  Ruthlessly decide whether an you should attend a meeting you were invited to.  Same with parties, conferences, speaking engagements, internal presentations, and more.  

A good CEO is probably saying "no" to 90% of the opportunities that she is presented with.  Yes, 90%.  And these are likely all things that seem interesting and fun.  But you need to be ruthless with your time.

As a startup CEO, what is your favorite productivity hack?