Python in India companies [x-post mumpy / pythonpune ]

117 views
Skip to first unread message

Samudra Neelam Bhuyan

unread,
Feb 2, 2013, 5:07:24 AM2/2/13
to pytho...@googlegroups.com, mu...@googlegroups.com
Hi all

I wanted to get an idea about the use of python in Indian companies, and what kind skill sets gets one to what kind of salary brackets. Could you please share your experiences with the community?

Specifically, the questions I am looking to answer are:

1. What kind of real world projects are being developed using python? (By real world, I mean not hobbyist django / python projects, but projects worth multiple crores e.g.)

2. What kind of python specific skills must one develop to get to:
a. Rs. 50k-70k per month bracket
b. Rs. 1.5L - 2L per month bracket
( I am intentionally ignoring work experience here, so that I can get a purer picture of skills to pay correlation. You may include your opinion on it if you think its relevant)

3. (Apart from people management skills) what would differentiate a 50/70k pm guy from a 1.5L-2L pm guy?

I guess question 3 is just a different way of phrasing question 2.

Thanks,
Samudra

Mandar Vaze / मंदार वझे

unread,
Feb 2, 2013, 10:43:42 AM2/2/13
to pytho...@googlegroups.com


On Sat, Feb 2, 2013 at 3:37 PM, Samudra Neelam Bhuyan <samu...@gmail.com> wrote:

1. What kind of real world projects are being developed using python? (By real world, I mean not hobbyist django / python projects, but projects worth multiple crores e.g.)

Dhananjay Nene

unread,
Feb 7, 2013, 12:36:12 PM2/7/13
to PythonPune, mu...@googlegroups.com
On Sat, Feb 2, 2013 at 3:37 PM, Samudra Neelam Bhuyan <samu...@gmail.com> wrote:
Hi all

I wanted to get an idea about the use of python in Indian companies,
I don't have a quantitative number of the extent of usage but I would imagine it is large enough that one doesn't need to worry about too small a market, yet it is nowhere close to the larger usage for say Java, C#, VB.NET etc.

and what kind skill sets gets one to what kind of salary brackets. Could you please share your experiences with the community?



Specifically, the questions I am looking to answer are:

1. What kind of real world projects are being developed using python? (By real world, I mean not hobbyist django / python projects, but projects worth multiple crores e.g.)

2. What kind of python specific skills must one develop to get to:
a. Rs. 50k-70k per month bracket
b. Rs. 1.5L - 2L per month bracket
( I am intentionally ignoring work experience here, so that I can get a purer picture of skills to pay correlation. You may include your opinion on it if you think its relevant)

You do not get paid to write programs. You get paid to solve problems. And you get paid more to solve problems that more urgently need to be solved than others. You also get paid more to solve a rich man's problem than an otherwise identical poor man's problem.
Thus what you get paid at least depends upon a) the paying capability (or propensity) of the person/company whose problem you are solving and b) the criticality of the problems you are solving. 

There is a reason I say this, because it brings in a whole set of dynamics. eg:)

a) You are likely to be paid higher for analysing a customer database to identify who is likely to gamble more for an online casino rather than a complex analytics based discovery of high risk individuals based on their lifestyles for an NGO
b) You are likely to be paid higher for fraud detection than customer retention if fraud is a particularly painful issue for the client at the moment.
c) The language you use is really largely going to be playing a marginal role in the amount of money you earn.

So I would rephrase your question differently :

1) What is the correlation of specific python skills to salary
2) For the given correlation, which skills are likely to pay more than the others.

To answer 1 above, frankly it could be disappointing. As in your salary will be influenced by other factors (even if you are constraining yourself to programming) - including command over the spoken and written human languages, articulation skills, soft skills of working effectively with colleagues etc. etc. 

To answer 2 above, I think it will be your ability to on demand and quickly learn skills that are necessary to solve the problem at hand. So to the extent the correlation exists the key is not the skills you have, but your ability to build and refine them based on the problem at hand. 

Problems change. So do the skills that are required to tackle them. What changes less is your ability to quickly focus on what you need to learn to solve the problem, learn it, and quickly put the problem behind you.

A question you did not ask is how can you build this skill. Well, simply put by solving as many problems as you can. Even solving your colleagues and friends and everyone else's problems related to programming (if that be your domain). They may breath a sigh of relief, perhaps even ungraciously take credit for it, but you will be the winner if you build a strong problem solving portfolio.

3. (Apart from people management skills) what would differentiate a 50/70k pm guy from a 1.5L-2L pm guy?

See above.
 
I guess question 3 is just a different way of phrasing question 2.

Thanks,
Samudra

--
You received this message because you are subscribed to the Google Groups "Python Pune" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pythonpune+...@googlegroups.com.
To post to this group, send email to pytho...@googlegroups.com.
Visit this group at http://groups.google.com/group/pythonpune?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
----------------------------------------------------------------------------------------------------------------------------------
http://blog.dhananjaynene.com twitter: @dnene google plus: http://gplus.to/dhananjaynene

dexterous

unread,
Feb 7, 2013, 5:32:45 PM2/7/13
to mu...@googlegroups.com, pytho...@googlegroups.com
On Thursday, February 7, 2013 12:28:59 PM UTC+5:30, Samudra Neelam Bhuyan wrote:

I was (and still am) looking for some direction in which to put in those 10000 hours of practice.

It's 10,000 hrs, start anywhere; you'll figure out the direction that best suits your interests and temperament before you get even 1/100 of the way there.

I don't feel that I have improved as a programmer as much as I would have liked to, in these past few years. I now have a better understanding that I do NOT have an understanding of what it takes to reach the next level.

Good, a Socratic acceptance of one's ignorance is always a great place to start from. You have made a fantastic start!

To continue the analogy, if I continue chopping vegetables day in and day out, will I become a better chef? No. I would need a direction to work towards... "this level of competency in chopping vegetables... this level of competency in mixing spices... this level of competency in whisking eggs... this much in baking cakes..." etc.

Strive for excellence in all of them... while simultaneously accepting that you will most likely never attain it in all of them. Once you have imbibed that thought, your internal dialogue will provide you with the priorities you seek.

That's what I am asking. What do I need to work towards?

As we've stated above:
  • start with what you don't know
    • now make a list
      • no really, start writing it down!
      • once you've written down all the items you can think of, write 1 more
    • now take each item in the list and break it down into what you need to know to know that item
      • it there is a language on the list, what programming paradigms does it subscribe to?
      • if there is a paradigm on the list, what thought process/problem solving approach does it apply?
      • if there is a platform/framework on the list. what libraries does it provide/use
      • if there is a library on the list, what technique/pattern/problem solving technique does it use? why?
      • ... <add many-many more questions here till you are tired of adding questions, and then add 1 more>
    • lather-rinse-repeat
  • now figure out what you want to know right now and move it to the top of the list (this is where that internal dialogue i mentioned earlier kicks in!)
    • what will help you solve the problem at hand in the fastest/easiest way (provided you have a specific problem at hand)
    • what do you need to know to be at par with your peers
      • ask around, your colleagues might turn out to be friendlier that you think
      • if they're already friendly, you're in luck!
      • ask your friends at other organizations, especially ones at positions you envy
      • no really, go ask them! all of them!
      • once you've asked all of them, ask 1 more
    • what aspects of CS appeal to you
    • what aspects of the software development process appeal to you
    • what topics do you not have the patience for
      • trust me, this is very important; this comes from a lot of personal and borrowed experience
      • you will realize that there are some things you just don't have the patience to keep grinding at
      • ... let them go!
        • no really, just leave them and move on!
    • lather-rinse-repeat
    • given that a lot of your preferences as well as your current situation factors into this list, it will be unique to you
  • now take the top 10 items on the list and find the most definitive resources you can for them
    • websites, books, tutorials, blog posts... don't stop at the first resource; list as many as you can
      • then 1 more
    • there is the temptation to assume that the internet will provide you with infinite resources; this is true, but...
      • not all of them are good
      • make sure you evaluate them before putting them on the list
    • don't forget to ask around... again if necessary!
  • re-prioritize the list based on what topics you have better resources for
    • prefer quality over quantity
    • make sure the resources 
  • now take the top 3 items in the 
    • put your nose to the grindstone a work at the item till you're comfortable taking it off the list
      • pick each resource in the order you have selected based on your preference and temperament
        • this is important; i have friends who just cannot learn just by looking at code and need descriptive guides, OTOH i don't mind walk through test cases for a well covered library to figure it out
      • stick with it till you feel you have gained as much knowledge from it as you can
        • don't hesitate to leave a resource midway if it doesn't seem helpful
        • don't hesitate to skip over a few chapters/topics if they don't seem helpful
        • also, don't hesitate to come back to the resource if you feel the need
      • write code; write lots of code
        • then write some more code
      • read code; read lots of good code; read more code than you write
        • ask around where to read code
        • ask 1 more person
      • when you're stuck at something
        • go back to the list to see if there were any pre-requisites for this item that you should have finished first
        • go back to start, do not collect Rs 50 if you cross home
    • lather-rinse-repeat till you feel good about yourself
    • ... then repeat 1 more time
  • now build awesome shit
    • pick a small problem that has always bugged you throught your learning process and write a little solution for it
      • wrap it in a command line utility
      • extract a library out of it
    • pick a problem/issue in a library you use often
      • write a fix/patch for it
      • submit it upstream
    • build a solution for a friend that can leverage your new found knowledge
    • build a toy application just to learn frameworks/libraries/techniques
    • ... then build 1 more
  • now demonstrate that you've built awesome shit
    • with the proliferation of the OSS mindset and advent of GitHub, BitBucket and GoogleCode you can create portfolios of your code and share them
    • blog about your experiences if you can; not a necessary step, but it definitely helps
  • finally,  go ask people to pay you to build awesome shit for them
    • .... and rake in the moolah!
Notes regarding above process:
  • you will have to ask a lot of people a lot of things, and then some more
  • you will have to ask yourself  a lot of things
  • whenever you ask, always ask specific questions
    • read this, it's a little outdated but still not outmoded
    • now go find out what 'outmoded' means (just kidding, it means out of fashion)
  • as with many things in life, you have to jump in and try stuff before you can find your direction
  • there is no one path to take; this is more true in software than many other places
    • however, no matter what path you choose, make sure you cover the fundamentals; that's where the breakup comes in
    • if you've repeated the breakup step enough, you'll see patterns emerging where many topics converge to a small set of fundamentals
    • however, this doesn't mean that you should start by covering absolutely all the fundamentals first; trust in your prioritization
  • there is no substitute i have found for actually writing code in the context you are trying to learn
    • be it language, framework, library, technique, algorithm, paradigm, ...
  • you have to be able to show people you can write code... at the drop of a hat
    • it doesn't always have to work on the first go
    • the really good ones will wait for you to figure out your mistakes and then give you the chance to fix them
    • that's a trait they're usually looking for
    • let's face it, if you got all your code right in the first go all of us would probably lining up to work for you
  • people don't have a lot of time, so you need to have code you have already written that you can show them
  • finally, to answer your original question, people pay you to think up and implement solutions
    • they usually don't care what language it is in
      • language choices are usually personal preferences of founders/original authors of the code
      • language choices can be more fluid than people usually make them out to be
    • if your fundamentals are good, you'll learn to apply them across languages and platforms
      • this skill can actually get you better pay (more personal experience at play here)
      • even management types are usually impressed by someone who can work in 3 languages and just pick up another one on the job
    • they're not really going to pay you more because you
      • know a particular framework/library better
      • use python in a particular way
        • unless you're fresh out of college
        • even then they'll be looking to train you and would prefer someone who they didn't have to train if they can find them
    • Baba Ranchoddas ke shabd yaad karo: Baccha kabil bano kabil.. Kamyabi to sali jhak maar ke peeche ayegi
      • Rancho Baba forgot the demonstrate step, but you can take that from me ;)
Now go read this post 1 more time.
E&OE
- d

Venkatesh Halli

unread,
Feb 8, 2013, 12:43:21 AM2/8/13
to pytho...@googlegroups.com
How do I upvote that?!

dexterous

unread,
Feb 8, 2013, 1:03:15 AM2/8/13
to pytho...@googlegroups.com, mu...@googlegroups.com
On Friday, February 8, 2013 11:13:21 AM UTC+5:30, Venkatesh Halli wrote:

How do I upvote that?!

Follow it! That's all the upvote i need. :)

- d 

dexterous

unread,
Feb 8, 2013, 1:08:47 AM2/8/13
to mu...@googlegroups.com, pytho...@googlegroups.com


On Friday, February 8, 2013 11:10:39 AM UTC+5:30, JohnsonC wrote:

*Clap, clap, clap! *Whistle!

IMO The best answer yet!

<takes a bow> (-_-)
 

This would just about fit in a timeframe of about a year and a half? (at least for part time)..and yet would be way better than any degree/course of the same duration.

well, the way i look at it, this is an iterative process. every time you finish a reasonable chunk of the list, you reiterate the first few steps to find new items and reprioritize. at least that's the way i do it. so, my list is still building up faster than i can take items off it! :o such is the world we live in; and i wouldn't have it any other way!

One thing to add to this list: A big fat slab of motivation needed for a long term challenge as this. Otherwise its not going to happen...

 agreed, but then again, motivation is necessary (but not sufficient) for just about anything we want to do.

thanks again
- d

Samudra Neelam Bhuyan

unread,
Feb 8, 2013, 1:32:31 AM2/8/13
to mu...@googlegroups.com, pytho...@googlegroups.com
Thanks everyone (especially Saager and Dhananjay) for the wonderful responses! Sort of did not get the answers I was looking for, but found something better instead :)

@Saager, Im gonna follow that. That reply deserves a memorial! :P

--
Impossible is not a fact. It's an opinion.
Impossible is not a declaration. It's a dare.
Impossible is potential.
Impossible is temporary.
Impossible is nothing.


--
--
_________________________________________________
Mumbai Python Users Group - http://www.mumpy.org/
Mailing Group - http://groups.google.com/group/mumpy/
Membership Management - http://groups.google.com/group/mumpy/subscribe/
 
---
You received this message because you are subscribed to the Google Groups "mumpy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mumpy+un...@googlegroups.com.

Saager Mhatre

unread,
Feb 8, 2013, 1:43:21 AM2/8/13
to mu...@googlegroups.com, pytho...@googlegroups.com
On Fri, Feb 8, 2013 at 12:02 PM, Samudra Neelam Bhuyan <samu...@gmail.com> wrote:
Thanks everyone (especially Saager and Dhananjay) for the wonderful responses! Sort of did not get the answers I was looking for, but found something better instead :)

@Saager, Im gonna follow that. That reply deserves a memorial! :P

You're welcome.

- d 

Mandar Vaze / मंदार वझे

unread,
Feb 8, 2013, 1:57:46 AM2/8/13
to pytho...@googlegroups.com


On Fri, Feb 8, 2013 at 11:13 AM, Venkatesh Halli <venkatesh...@gmail.com> wrote:

How do I upvote that?!

Reading (and understanding) the entire post in itself is an upvote :)

-Mandar

yati sagade

unread,
Feb 8, 2013, 4:20:57 AM2/8/13
to PythonPune
This thread was super rejuvenating. Thanks dexterous, you've got us all thinking (again) :)


--
You received this message because you are subscribed to the Google Groups "Python Pune" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pythonpune+...@googlegroups.com.
To post to this group, send email to pytho...@googlegroups.com.
Visit this group at http://groups.google.com/group/pythonpune?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
Yati Sagade

Software Engineer at mquotient

Twitter: @yati_itay | Github: yati-sagade

Organizing member of TEDx EasternMetropolitanBypass
http://www.ted.com/tedx/events/4933
https://www.facebook.com/pages/TEDx-EasternMetropolitanBypass/337763226244869

Reply all
Reply to author
Forward
0 new messages