

Ask HN: What kind of programming do you do and what tools do you use every day? - econner

Just curious to see what some typical workflows look like.
======
siddboots
I'm a data analyst / data application developer for a large humanitarian NGO.

What: Lots of small data analysis projects, some large web projects. All
projects are in git repos or in our division's SVN. My work tends to involve
ETL data flows, statistical analysis, web development and data visualisation.
I'm not "full stack" as I never really play with hardware or do much systems
administration. I do get to control a nice big, enterprisey Oracle data
warehouse, with a few hundred users, but I've hardly played with nosql, redis,
mapreduce, etc.

Most of my problems can be solved in-memory, and most of my data fits on a
single disk.

How: SQL. SQL. More SQL. PL/SQL. Python (Pandas, scipy, numpy). R (these days
only when I can't find a python lib). Javascript (just jquery, underscore and
D3). Windows 7 while at work, Ubuntu + i3 wm at home. Edit in vim with very
few plugins, everything else is done in zsh/powershell. IIS for production,
Pyramid/Pylons Project for quick prototyping. A wide variety of RDBMS, but
chiefly Oracle. I do lots of my templating/css in-browser using developer
tools (FF, Chrome, IE9).

My typical web stack is static html and javascript, with json served up out of
purpose-specific database views. No need for an MV* framework, since I'm
almost never dealing with transactional data.

I also use Excel for a) doing quick data transforms b) building interactive,
distributable data analysis apps in less than an hour. I'm trying to build an
excel replacement with vim bindings and LISPy worksheet formulas.

~~~
gjreda
My workflow is very similar. All data analysis, all the time.

Tools: Lots of SQL (MySQL). AWS Elastic MapReduce + Hive for log analysis.
Python (pandas). R (ggplot2 + stat modeling - haven't fully grok'd Python's
statsmodels package yet). A little bit of D3, and a lot of command line. Maybe
some Flask every once in a while to prototype out a reporting web app.

I try to avoid Excel entirely because it always crashes on my MBP, but still
find myself in it every so often to simply look at my dataset.

~~~
siddboots
> ... but still find myself in it every so often to simply look at my dataset.

Exactly this. I could never understand why there isn't some awesome,
lightweight, terminal-based tool for looking at dataframes, and doing basic
manipulation.

------
johncoltrane
I have three activities with slightly different tools and workflows.

* Generic

Everything is under Subversion, my employer's VCS of choice.

Briefs usually come as Word/Excel/Powerpoint files.

Compositions usually come as messy Photoshop files that I spend too much time
tidying up.

Emails are the basis of interaction between departments (we have tried other
means but they all failed for one reason or another) and we use Mantis for
tracking bugs.

I'm on Mac OS X.

* HTML/CSS/JS frontend dev

When I start a project, I do it with a small script that creates a standard
project and puts it under version control. Once it's done, I tipically open
the README in Vim, populate it with a bunch of infos on the project and a TODO
list. That file is my entry point in the project:

    
    
        $ cd /path/to/project
        $ vim README
    

Subsequent file navigation is done from Vim itself (either with built-in
commands or with CtrlP), keeping the README in its own tab.

A tags file for my CSS and JS is generated at the root of the project every
time I leave insert mode for better navigation.

On the browser side, I used an "autoreload" extension for a long time and now
I use tincr [http://tin.cr](http://tin.cr) which works very well.

Deployment is never handled by me but is a manual task done with FileZilla,
:-(

I'm sorry to say that we have no internal guidelines on anything.

* "Heavy" AS3 dev (whole apps/sites)

Almost everything is done in Flash Builder (with a vim plugin called vrapper)
for my new projects or on an old PC in FlashDevelop (used by two previous
coworkers) for legacy projects.

I also use a little Java app called Vizzy to show debug info when the app is
not run from Flash Builder.

* "Light" Flash dev (banners)

Everything is done in the Flash IDE itself.

At home, it's typical linux hackery: terminal+vim.

------
hashtree
I do: machine learning, nlp, ocr, expert systems, big data, and systems
integrations. Also do a fair amount of datacenter infrastructure, as I don't
use any PaaS/SaaS.

Languages: clojure, scala, haskell, and sometimes javascript (when
clojurescript won't work)

Development: vim and a command line

Heavily used OSS: incanter, redis, titan, postgres, cassandra, storm, akka,
nginx, jetty, finagle, netty, bookkeeper, opencv, smartos, ansible, xen

Services: github, pingdom, google apps

------
japhyr
Hobbyist programmer, looking to do more serious work. I do web development in
django, using emacs. That and a terminal is all I need at this point.

I currently use nano during remote terminal sessions, but I'd like to become
comfortable with vim sometime soon.

I also got my first Thinkpad recently, and I love it.

------
unperson123
What: I'm not a professional programmer, but I spend a lot of my free time
coding my various hair-brained money making schemes. Trading bots mostly.

How: My main development enviroment is VS 2013 on Windows 8.1. On most of my
"real" projects I work with C#, though I've been experimenting with F# for
that recently. For those little scripting jobs for little automation type
things, I used to use Powershell. (if you haven't heard of it it's the native
scripting language for Windows). Hardware-wise, I use a Lenovo U410 which I'm
really been liking over the last year.

------
ahefner
Professionally, telecom infrastructure stuff. Platform: Linux (RHEL), C++.
Development tools: Emacs, git, lots of xterms.

For fun: Random hacks (Linux / OS X / Common Lisp + Emacs + SLIME), occasional
6502 hacks targeting the old NES (actually Lisp generating machine code, not
traditional assembly), and some FPGA stuff on the Papilio Pro board using
Verilog and the Xilinx tools. Also a couple indie games on the back burner -
one in Lisp, the other in C++.

------
yulaow
Atm i work mainly as web and mobile developer

general OS: mainly linux (debian-like for reason of compatibility with some of
my hw), sometimes windows in a wm when needed

Web dev --> konsole, kate, sublimeText2, vim, intelliJIdea12 \--> php
(laravel, yii), javascript/jquery, python/django, html5, some css3

Mobile dev(android mainly) --> kate, androidStudio, intellijIdea12

------
thomasfoster96
I'm doing CS at high school, but also doing some projects of my own on the
side.

I use PHP for myself (I started with it because it was easy, and I don't feel
like rewriting what I've already done), along with Javascript and SQL. At
school I use Java.

Most of my coding is in NetBeans at the moment, though my CS course recommends
some thing called BlueJ. I also use Git.

------
purephase
Web development. Mac, but most of my time spent in Ubuntu VM (through Fusion
-- planning on installing it on metal soon) with ST3 (a lot of packages), git,
hipchat and keepass/1password.

I do a lot of DevOp related work so I spend a lot of time in iTerm2/terminal
on EC2 instances and rue the day that I haven't worked through Chef/Puppet
(yet).

------
Moto7451
For Perl:

iTerm and TMux in integration mode.

Nano for writing code, VIM for text transformations more complicated than a
simple find/replace regex.

ACK for search

For .Net:

Xamarin Studio

Nano for bash scripts

iOS:

XCode

Alcatraz - XCode plugin/package manager

OMColorSense plugin to get a color picker when creating UIColor objects

------
Oculus
Web/Mobile Development

OS: Ubuntu 12.04 LTS with Win7 in VMware (For IE, Photoshop, and Office).
Vagrant for local servers.

Editors: Sublime Text 3 for local and vim for anything remote. Eclipse if
Android (only because Android Studio is too buggy to use).

Misc: Git for Source Control and grunt for the tedious stuff.

Whenever I do

~~~
L_Rahman
If you haven't tried Studio since it hit 0.2, it might be worth another look.
It's become much more stable and I've been able to replace Eclipse completely.
I actually don't have Eclipse installed on my primary dev machine right now.

~~~
Oculus
I admit I used it early on (i.e. June) and was trying to build an app with
Google Maps. The problem was that I needed to understand Gradle in order to
manually edit the build files. I figured I'd tough out eclipse for the next
little bit, until the Gradle issues are fixed. Next time I'm fooling around
with Android, I might give it another chance.

------
IanChiles
What: Student/Hobbyist (for the moment), so whatever interests me.

Languages: Ruby/Go/Haskell

How: Sublime Text/Vim/Vintageous, Virtualbox/Vagrant, Arch Linux/Debian Jessie
VMs on Windows, and a variety of other programs.

Services: Github, Bitbucket, Travis-CI, DigitalOcean, etc.

------
jonsterling
During the day, I use Objective-C, Xcode, Clang, LLDB, Git, GitHub. During the
night, I use Agda, Coq, Emacs.

------
thomasmeeks
I program ruby most of the time, with some sysops mixed in here and there. A
smattering of other languages as the need arises. OS is Arch Linux, and I use
the i3 window manager. Coding is done in Vim. ZSH & Konsole are my terminal
weapons of choice after a lot of experimentation.

------
waxzce
\- git \- mate / subl \- maven or sbt \- sometimes (big project I'm not the
architecht or for code review) intelliJ (pure scala / java project) eclipse
(play2 project) \- Clever Cloud deployment

------
randelramirez26
Software Engineer (Web developer) OS: Windows 8 IDE: Visual Studio 2012 Stack:
C#, Asp.net MVC 4, Sql Server 2012, JavaScript (jQuery, jQuery UI, Kendo UI)
and Google Maps. Source control: TFS 2012

------
taylorlapeyre
PHP Web Development, specifically with the Yii framework.

I use Sublime Text as my editor and Vagrant for my development environment. I
use vim on servers. That's about it.

------
rk0567
Web Development

Language/Framework: Ruby, Rails

OS: Ubuntu 12.04 LTS

Editors: vim with Terminal (Bash), geany (sometimes)

Services: Github, Bitbucket, Digital Ocean

------
clockwork_189
Web Application Development: Mac OSX -> Terminal, Sublime Text 2, Codekit and
sometimes LightTable for pure frontent work.

------
NkVczPkybiXICG
Student. Functional programming (OCaml + Haskell). High-performance low-
latency C++. Finance.

------
zbosveld
what: enterprise data analysis - mostly where data originate in SAP. Tools:
SAP GUI, SAP HANA Studio, Postgresql, Python -- with Excel at the end

