It is fair to say that.
We have a plan in place, but perhaps the most interesting thing that has happened is that I discovered PowerBI (I had no idea this existed before) and have been mining our data to understand where we stand on bugs.
The tool is just simply amazing, and free!
https://powerbi.microsoft.com/en-us/
It works better in Windows, but you can also use it on the web.
MySQL may have MySQL Workbench, but PostgreSQL has PGAdmin which provides a really nice interface too.
Screenshot of its kick-ass graphical EXPLAIN panel.
I usually write my table and index definition SQL in it because I can't be arsed to type it out every time.
Code Complete! Every developer should be required to read it before even thinking about touching a keyboard. It's an older book, but the practical advice on best practices will save you so many headaches.
I liked the Macbook keyboard so much, I got one of these for my Hackintosh. They just feel so soft and nice to type on. Never understood the appeal of mechanical keyboards.
You don't suck, you just don't grok. (Sorry, couldn't resist.)
git hooks are commands that you configure git to run at certain moments, e.g. just before a commit happens, after a checkout (as in my example above), after a merge, whatever. Here's a list with more info.
It's unclear exactly what you are after, but I'll throw out a couple of books that you might be interested in:
Nothing for myself, but this reminds me just the other day that a programming buddy of mine told me he's about ready to move on from Python to a functional language called Elixir that runs on the Erlang VM. I assumed he just meant for personal projects but I was wrong -- he's considering it for production. Which kind of amazed me. I don't know anything about the language, but I can't imagine it has anything like the ecosystem support as Python!
I started using WeeChat for an ncurses IRC UX in my terminal. I fire it up along with all of my other long living commands. When I am away from my desk I ssh in and turn on the relay which has a few decent front ends in browser, emacs, or even an Android app.
Code Complete, and also Clean Code the main difference I see between regular and very good developers is the way they pay attention to the way the code is structured.
You can learn all the cool languages, all the dozens of design patterns, but if the code you write is a mess, you are not going far as a professional programmer.
This is one of the things that makes me love my job so much. When I'm in that groove, the whole day goes by in a blur. I know just what you mean about the high being even better than gaming, too; that's one thing I used to do a lot of that I barely do at all anymore, since I always end up thinking "I could be learning x technology now" or "hey, there's still lots of problems to work out over at Project Euler" or "why not try to digest something from The Art of Computer Programming or Purely Functional Data Structures with this time".
If it wasn't for my wife and son, I think I'd easily lose myself totally in my work.
I'm not sure which part exactly you'd like help with, so if you can give a little more detail that would be great!
For now though, you should look into Amazon SES: https://aws.amazon.com/ses/
It's an API that will allow you to programmatically send emails. It happens to be free for small volumes which is perfect for testing.
> No mouse needed: everything can be performed with keyboard;
I've never gotten it to cooperate with my environment, but I think it does what you're looking for. Let me know how it goes if you try it!
What are your thoughts on languages or dialects developed for specific interests, such as Processing for visual art, or ChucK for music?
And are narrow-scope languages like those valuable learning tools for exposing programming to artists and other creatives who might not have considered learning to code? Or should there be more of a push towards the more popular languages in those areas?
Julia!
It's a lot like Lua, but much faster, a huge standard library, and some very cool and special features, such as defining functions like this:
>f(x) = x^2
and also writing julia functions directly in C, or Assembly, right in your normal code.
Rework - 37 signals
Getting real - 37 signals
Clean Coder - Robert C Martin
Clean Code - Robert C Martin
Pragmatic Programmer - Andrew Hunt
Elements of Style - William Struck Jr & E.B. White
All great books in no particular order, none of them are directly related to specific languages or frameworks and some aren't even about coding at all.
I personally really like Bob (Robert) Martin's "Clean code". I used it as part of my capstone course for my CS undergrad, and really liked it. Another good one, my boss is an advocate for is Microsoft's Code Complete. I haven't read much of that one, but it seems really good.
You might be confusing O'Reilly's "Head First Design Patterns" which is all sorts of fun, with the GoF's book Design Patterns: Elements of reusable object-oriented software
My personal favorite is Clean Code. The book inspired me with a lot of good ideas. The book is powerful because it is emphatic and makes extreme points. For me, it was also engaging because I did not agree with all of it and I had to think hard to fiind why I disagreed.
Thinking in Java was great for me; that was the book that helped me really get object oriented programming, years ago. Hands down the best Java or OOP book I've ever read.
Also, I read Seven Languages in Seven Weeks for a programming languages course in college, and that sparked my interest in programming language design and unusual languages.
Nowadays I don't read programming books as much; I find that there's a lot more useful information online.
Probably. You need a 64-bit processor with the common virtualization extensions, VirtualBox (free) and an image of Linux Mint 64-bit.
Create a new virtual machine, give it some processor cores and memory, and run it. It will ask for a disc image, give it the Linux Mint image. Now you can play around with Linux Mint, or run the installer to install it permanently.
As you'll see, Linux Mint comes with full VirtualBox integration. That is, many of its operations (file system, display, ethernet) don't go through the virtualized hardware but call VirtualBox directly, giving you better performance. And you get near seamnless integration for free: automatic mouse capture, resolution adjustment, etc.
Cool, happy to help =D
Oh, also they also have a pretty nice search function which I didn't realize at first; it serves individual posts, but also specific tumblrs which tend to use related tags frequently:
Sure! Sorry it took me so long to reply.
Code Complete has lots of common sense stuff like have readable variable names, don't write "clever" code that is unreadable, comment like the guy coming after you has an ax, and the "broken windows" theory of code base maintenance. You'll probably run into this sort of wisdom elsewhere, but Code Complete has all of it in one convenient place.
There were some good tips on coding best practices that are fairly applicable across most programming languages you will encounter. How to write conditionals cleanly, for example. Basic stuff, but doing it right will save you a lot of time.
It was also my first introduction to refactoring and debugging strategies--it's not the definitive book on those topics, but it is a good introduction.
TL;DR: Lots of small bits of advice and handy tips that as a whole are a good introduction to the field of software engineering, as opposed to blindly churning out low quality, unmaintainable code.
How to Design Programs was written by the language authors as sort of a spiritual to the famous Structure and Interpretation of Computer Programs. Both are great books.
Racket is a flavor, or, perhaps more accurate, a super set, of Scheme, which itself is one of the two surviving major dialect of Lisps (excluding extension languages like Emacs Lisp. The other dialect is Common Lisp).
I use a Scheme called CHICKEN at work and home for everything from small scripts to web servers.
Well you gotta learn how to use libraries if you really want to get into developing things. No language these days can really stand without it's core libraries. C# is a great language, but without the .net framework it wouldn't be all that either. Knowing how to read and use API's is a valuable skill in itself.
Also, if you really "know the ins-and-outs of object oriented programming", you should look into stuff like software architecture and design patterns. Not only are they language-independent but abstract stuff like that is needed to really "get good". This book for example probably helped me more than any other book on any language.
Last but not least, don't build useless things. Build things that someone will actually use, even if it's just yourself.