
Automate the Boring Stuff with Python (2015) - saranshk
https://automatetheboringstuff.com/2e/
======
calderarrow
This was the book that got me into programming. About three years ago, I was
an auditor looking for ways to automate the more mundane tasks of my job, and
stumbled a across this book.

I had no prior experience with programming, and at the time I only wanted to
learn how to write enough code to help me with my job. This book was perfect
for that goal.

It took me a couple of weeks to get through it all and write the program I
needed to write, but when it worked, I was amazed. I remember going to grab
coffee to celebrate and on my walk I started thinking about other job tasks I
could automate. Most of public accounting deals with comparing PDF reports and
Excel data, so I genuinely believed I could write programs to automate the
majority of tasks at my job.

I started to learn on my own with some common online resources. I would get so
excited to come home from work so I could dive further into my studies, and
the more I learned, the more opportunities I saw: what if there was a way for
a computer to perform all the analysis and statistical processing for an
audit? What if a program could monitor financial transactions and
automatically complete taxes for clients?

Flash forward a few months and I went all-in on software development. Quit my
job as a public accountant, finished a boot camp, and started working as a
developer.

It was the best decision of my life and this book was the catalyst. I’m so
grateful that Al wrote this, and I highly recommend it for people whose jobs
have a lot of boring stuff —- especially public accountants :).

~~~
strangelove026
I had the same exact experience, however no one really cared when I explained
my spreadsheet automation (I’m partially to blame there), so I quit my road to
nowhere finance job to move to Australia and also change careers with a boot
camp. 1000% changed my life for the best.

~~~
jscotto
As someone in a bootcamp right now, I'm really happy to hear this! Im hell-
bent on starting a new career as a dev

------
froindt
I started reading this book this week in an effort to open up my job prospects
down the line. I'm a "technical" Industrial Engineer often serving as a liason
between IT and the business. I can program in VBA and do anything you can name
in Excel, but I want to move to a more programming oriented role down the
line.

I want to be able to do statistical analysis, queries, and just "be better" at
breaking down a problem into easily solvable steps.

I'm using this book as a "learn the basics" stepping stone, and Project Euler
as a list of solvable problems which will let me practice solving problems.
After that I'll move into some personal projects I have in mind.

Does anyone have additional book or resource recommendations beyond that? I
know packages like NumPy and/or SciPy will be useful down the line.

* Codecademy feels overpriced at $40/month or $250/year (no refunds for using a partial year).

* Google Python class was free but about 10 years old. With the Python 2->3 debacle, I was unsure if fundamentals had changed and hesitant to sink my time into it.

* Lynda runs $25 or $40/month but would offer python as well as many other resources.

* Udemy - has a number of courses including one by Al, the author of this book. Looked like it'd be a good value, but I'm not sure how much more value the videos add than the book.

~~~
jdc
I'd recommend edx's CS50x, "Learn Python the Hard Way", "The Pragmatic
Programmer" and "Code Complete".

~~~
froindt
These look like great resources, thanks!

------
monkeydust
Got hardcopy of this book for Xmas from my 3 year old (yea OK the wife!) about
a 1/3 into it.

Have programmed c++ about a decade ago.. Nice to get back into it I have to
say, there is an instant gratification from solving something in code, perhaps
is the binary nature of something working or not, it's very black and white
versus dealing with management issues, which is more like my day job, where
your constantly in some grey area or dealing with noise, emails, endless
directionless meetings.

Anyway highly recommend this book for non programmers, MU is also a very nice
and clean IDE but prefer VS Code.

------
ExtremisAndy
I love this book! I bought the physical copy years ago and it has frequently
been a go-to book of mine. So many tech books (not all, of course) either do a
great job of theory but are of little immediate, practical value _or_ they are
"cookbook" style and give you lots of useful tidbits but fail to help you
grasp the big picture. While there are valid reasons for both of these
approaches, of course, this gem is one of the few that are able to do both in
one text. You learn a new computer language in the first part, and as soon as
you have a foundation in the basics, you immediately jump into practical
applications that can benefit your life almost immediately. Very well done,
IMHO.

------
nailer
Aww I wrote the Python docx module years ago when I first got into programming
as a sysadmin (I was doing lots of xml munging so knew lxml pretty well at the
time). Nice to see it included in a guide like this.

~~~
aroberge
Thank you for writing it. I used it for the first time last week and it made
my job so much easier than the other solutions I was looking at.

------
nuclx
The problem with automating 'every day stuff' is that processes aren't
formalized in most cases. So there isn't an interface to implement against.
There are no clear or reliable sources of data. Management needs to understand
the issue, and if it doesn't there isn't much you can do as a single
individual. So I more and more often tend to ask myself, if it is really
feasible to automate task X.

~~~
jononor
A key question is "will this task benefit from formalization". If the answer
is Yes, one can begin to structure it and gain benefits quite quickly. Clear
and relatively quick gains, and helping out the people that do these tasks
today, is key to buy-in. Then once a structure is in place, one can consider
automating it.

------
thunderbong
Honest question -

I'm very familiar with Ruby and for my automation tasks I tend to use it
almost exclusively. Of these, is there anything that -

1\. Ruby can't do

2\. Or is more complex / complicated to do in Ruby

~~~
nurettin
Honestly, I've done a lot of professional work in both languages, and there is
pretty much nothing you can't do with ruby that you can in python. There is no
intrinsic difference in power of expressiveness between the languages.
Although ruby is lagging a little behind with the asyncio syntactic sugar
stuff. You may reach a point where there simply isn't any client written for
the service you are trying to automate in either language. And python got more
love in that aspect what with all the being the number one preferred scripting
language on planet earth, but in case your target of automation provides a
simple rest or websocket protocol you could easily do without a dedicated
client library for it.

~~~
mattlondon
> [Python] being the number one preferred scripting language on planet earth

Is it?

I'd imagine JavaScript usage/execution is probably way way higher.

~~~
nurettin
Yes python is more preferred when choosing a scripting language and javascript
is more executed in browsers. And the two do not contradict.

~~~
nailer
I think you're both correct. For sysadmin definition of scripting, python
would be most popular. For the 'fast to write' definition of scripting then
sure, JavaScript.

~~~
JshWright
I don't think I've ever heard that as a definition of "scripting".

~~~
nailer
Which one?

For the second, the definition of 'scripting language' used to be 'doesn't use
a compiler' but JS and everything else has a JIT now, so 'make something
quick' is a modern equivalent.

------
CDSlice
This should not be dated 2015 because this is the second edition that just
came out today.

------
earenndil
This is the second edition, which is new, so it shouldn't be (2015).

------
jdmcnugent
I’m right there with ya calderarrow. I’m a middle aged physician with no prior
programming experience, but I picked this book up on a whim a few years ago
and it changed my life. I started automating little thing a here and there and
now I see opportunities everywhere that a “real developer” could capitalize
on. For as expensive as EMR’s are, you will NEVER meet a doctor who loves
theirs, they just hate some less than others. Patient portals are even worse.
This industry is ripe for disruption.

------
rezendi
I am biased because the author is a friendly acquaintance, but this is a great
book (and Al is a great person.)

------
dang
Discussed at the time:
[https://news.ycombinator.com/item?id=9415891](https://news.ycombinator.com/item?id=9415891)

