Development

Jul 02, 2016 07:55

People who code! What tools do you use? What do you think of them?

I'm asking because I want to up my coding capabilities, and getting to grips with better tools looks like it might be a quick(ish) win. Here's what I'm using.

My tools, let me show you them ... )

computers, ask-the-audience

Leave a comment

jvvw July 3 2016, 09:41:09 UTC
OK, at a computer. On the IDE front, I don't know anything about Python-specific IDEs so you may want to ignore my previous suggestions. There must be something nicer out there than Eclipse these days though.

Git - definitely use the command line. If you're just using it for yourself, you'll probably only need a tiny subset of what it can do: git init, git clone, git add, git rm, git commit, git status, git diff, git checkout, git push, git pull will probably get you a long way. This article is worth a read once you have used git a bit and want to understand it better :A Hacker's Guide to Git. There are some other useful articles out there, but if you're not going to be doing things like trying to sort out git repos that are in a mess, that is probably going to be sufficient.

Otherwise, what is useful is going to depend on the type of software you want to write and what your goals are. I obviously know tons about web dev but that's very different from data type stuff so e.g. almost nobody uses make in web dev these days, it's all grunt and gulp, but I have no idea what is the norm outside that world. There are also a lot of tools that are really useful when working in a team that aren't necessary if you're not and a difference between hacking something up (a totally valid thing to do in lots of circumstances) and writing robust, maintainable software.

Generally if you are trying to up your game, then learning about testing frameworks/libraries for whatever you want to do is something that will stand you in good stead. Also, it's pretty difficult to learn to write really good code without having your code reviewed by better developers at some point. I cringe at any code I wrote before going through the bootcamp type training given in my first proper software job.

Reply

drdoug July 3 2016, 19:06:57 UTC
Thanks, that's all really helpful! Testing is not properly on my list and should be. And yeah, code review is probably the way to really get better ... once I've done a bit more on my own. :)

Reply

jvvw July 4 2016, 06:17:54 UTC
Oh and there are static analysis/lint type tools for most languages. That might actually be one of the easiest things to throw into your workflow and can easily reap big dividends.

Reply

drdoug July 4 2016, 06:56:34 UTC
Ah, excellent prompt, thanks!

I did use actual lint on actual C in my formative coding days (early 90s). I used it a bit like I use grammar checkers these days: it's a tiresome and annoying task because of the many false positives, but it's worth doing at least once on anything major, because it can catch many stupid mistakes before they bite you. It needs the right frame of mind not to get carried away with going "No, no, no, you don't understand, no, no, no" so you dismiss the real problems.

Since then my experience was that this is often something you get out of your IDE if you set the options right and/or have the right plugin. I think I got out of the habit when I was writing a lot of Perl because ... well, I can't help thinking it was because, as Perl haters observe, there's a nonzero probability that line noise would validate as well-formed Perl.

A quick look throws up shedloads of possibilities for all sorts of things, including built-in to PyCharm as recommended by venta below. Cool!

Reply

jvvw July 10 2016, 09:31:38 UTC
When I worked as C programmer, we weren't allowed to commit anything without a clear static analysis which was annoying but probably did catch a lot of potential bugs. With the type of stuff I do now, there isn't the same potential for nasty bugs so I just use IDE plug-ins which I check when I'm feeling self-disciplined enough. After a while, you get into reasonable habits though - it's like checking your HTML through the W3C validator - after you have done it enough times, you only make accidental mistakes.

By the way, I would avoid Docker if you want to create anything that might need to be installed on desktop machines at work - VMs don't work on Managed Macs and aren't officially allowed on semi-autonomous PCs (though IT haven't got any way to stop them).

Reply


Leave a comment

Up