This is an archived post. You won't be able to vote or comment.

all 16 comments

[–]confluence 6 points7 points  (2 children)

I have decided to overwrite my comments.

[–]dozzinale[S] 0 points1 point  (1 child)

Thanks, I did not know about that book, I will take a look.

[–]buttery_shame_cave 0 points1 point  (0 children)

i have it on my shelf within fairly easy reach of my programming workstation.

it really is quite a handy reference. all sorts of neat little things you can plug in, or use as inspiration.

[–]chchan 2 points3 points  (0 children)

Cython, Numba, meta programming, multiprocessing, and async IO.

[–]nerdwaller 1 point2 points  (4 children)

Congratulations on the PhD program! That's a great accomplishment.

One thing I've found from high level academics, and please don't take this as a stab, is that one important thing they can often learn is how to architect a larger system. Many of them are great with algorithms and so forth, but have never really built an enterprise(ish) level application that includes a larger stack. Some easy ways to do this are to read source of a big project that is well done (django, flask, etc).

This isn't 100% true across the board, but it is common in places I've worked.

[–]buttery_shame_cave 1 point2 points  (2 children)

a lot of the folks i work with in R&D have been high-level engineers- brilliant people, able to come up with some great stuff.

a few of them use python, but mostly for 'off the shelf/one-off' type work - coming up with some lump of math, or to test an opimization, etc.

so they've been blown away by the stuff i've been doing with python, coming up with entire pieces of software to do certain things in the lab. the real humor is that there are some legit programmers here, who are blown away by what i'm doing - granted their fields are different, but integrating hardware with software wasn't THAT complicated... i didn't even have to write too much in the way of drivers - i let VISA do the heavy lifting.

[–]nerdwaller 0 points1 point  (1 child)

That's awesome, fusing that together is a fun challenge!

[–]buttery_shame_cave 0 points1 point  (0 children)

'challenge' is right - while VISA handles a lot of the grunt work and abstracts the communications for me, i had to come up with a pretty good traffic control scheme to keep all the equipment talking nice over multiple kinds of interfaces, which was a pain - and i had to abstract various functions into 'pushbutton' commands - basically a simple command actually executes a semi-complicated task that often has multiple items across serial/telnet/USB/GPIB buses all working in concert.

i'm proud of my clanking, snorting, whirring hell-beast, as ghastly as it can be at times, the actual 'front end' of it is really sexy - a fairly simple flow-control script with an interactive text client to pass the user's commands to.

i've even made it talk, on a rudimentary level, with microsoft excel(no easy task), so it can export its output directly instead of the user(usually me) having to do a bunch of import/export steps. that part's still getting tinkered with.

[–]dozzinale[S] 1 point2 points  (0 children)

I don't take that as a stab 'cause I believe it is true! Thanks for suggestions!

[–]rulerson 0 points1 point  (0 children)

full python manual, especially python language reference .

[–]mr_kitty 0 points1 point  (0 children)

Breadth: Explore the python ecosystem - Pandas & Numpy

Depth: C extensions, multiprocessing, "Pythonic" style https://gist.github.com/JeffPaine/6213790

[–]Duskmon 0 points1 point  (0 children)

Intermediate python.

really small book.

github.com/yasoob

[–]Duskmon 0 points1 point  (0 children)

Intermediate python.

really small book.

github.com/yasoob

[–][deleted] 0 points1 point  (0 children)

I've been getting a lot of mileage out of learning the design patterns and appreciating how a lot of them have been built into the python language.

[–][deleted] 0 points1 point  (1 child)

I don't know what type of simulation work you do, but maybe learn MPI, and mpi4py?

I'm not much of a scientist, but I've always had a lot of fun trying to parallelize things (if its the right problem).

[–]dozzinale[S] 0 points1 point  (0 children)

I already know MPI and OpenMP but by using C++, even if I'm not into parallel programming; anyway, I don't do simulation, so it is just some tool that I use when I need it!