background preloader

Don’t Call Yourself A Programmer, And Other Career Advice

Don’t Call Yourself A Programmer, And Other Career Advice
If there was one course I could add to every engineering education, it wouldn’t involve compilers or gates or time complexity. It would be Realities Of Your Industry 101, because we don’t teach them and this results in lots of unnecessary pain and suffering. This post aspires to be README.txt for your career as a young engineer. The goal is to make you happy, by filling in the gaps in your education regarding how the “real world” actually works. It took me about ten years and a lot of suffering to figure out some of this, starting from “fairly bright engineer with low self-confidence and zero practical knowledge of business.” 90% of programming jobs are in creating Line of Business software: Economics 101: the price for anything (including you) is a function of the supply of it and demand for it. There are companies which create software which actually gets used by customers, which describes almost everything that you probably think of when you think of software. “Read ad. Anyhow.

How to Measure a Company's Most Elusive Element: Culture Your organization has a set of values and a culture, whether it was engineered or not. Most organizational cultures tend to revolve around the personal values of the founders, even if the company has been around a long time. Young companies tend not to think much about culture because they are too busy focusing on customers and shareholders. Southwest Airlines is one of those rare companies that has maintained it culture of humor, focus on the customer, and efficiency, long after founder Herb Kelleher stepped down as CEO. 3M is also a company that has been through leadership changes, yet stays focused on the core value of innovation. Most mature companies tend to see a major culture change in a negative direction when the founder steps down.

Java Programming Cheatsheet This appendix summarizes the most commonly-used Java language features in the textbook. Here are the APIs of the most common libraries. Hello, World. Editing, compiling, and executing. Built-in data types. Declaration and assignment statements. Integers. Floating-point numbers. Booleans. Comparison operators. Printing. Parsing command-line arguments. Math library. The full java.lang.Math API. Java library calls. Type conversion. Anatomy of an if statement. If and if-else statements. Nested if-else statement. Anatomy of a while loop. Anatomy of a for loop. Loops. Break statement. Do-while loop. Switch statement. Arrays. Inline array initialization. Typical array-processing code. Two-dimensional arrays. Inline initialization. Our standard output library. The full StdOut API. Our standard input library. The full StdIn API. Our standard drawing library. The full StdDraw API. Our standard audio library. The full StdAudio API. Command line. Redirection and piping. Functions. Libraries of functions. Our standard random library.

The Programmer's Bill of Rights It's unbelievable to me that a company would pay a developer $60-$100k in salary, yet cripple him or her with terrible working conditions and crusty hand-me-down hardware. This makes no business sense whatsoever. And yet I see it all the time. It's shocking how many companies still don't provide software developers with the essential things they need to succeed. I propose we adopt a Programmer's Bill of Rights, protecting the rights of programmers by preventing companies from denying them the fundamentals they need to be successful. The few basic rights we're asking for are easy. OpportunisticRefactoring refactoring tags: From the very beginning of when I started to talk and write about refactoring people have asked me how it should be incorporated into the wider software development process. Should there be refactoring phases in the software development lifecycle, what proportion of an iteration should be devoted to refactoring tasks, how should we figure out who should be assigned to refactoring duties? Although there are places for some scheduled refactoring efforts, I prefer to encourage refactoring as an opportunistic activity, done whenever and wherever code needs to cleaned up - by whoever. What this means is that at any time someone sees some code that isn't as clear as it should be, they should take the opportunity to fix it right there and then - or at least within a few minutes. This opportunity can come at various parts of implementing some new functionality or fixing a bug. Sometimes you see an opportunity when you're in the middle of something else.

Stack versus Heap The differences between the stack and the heap can be confusing for many people. So, we thought we would have a list of questions and answers about stacks and heaps that we thought would be very helpful. Where are the stack and heap stored? They are both stored in the computer’s RAM (Random Access Memory). For a refresher on RAM and virtual memory, read this article: How Virtual Memory Works How do threads interact with the stack and the heap? In a multi-threaded application, each thread will have its own stack. Can an object be stored on the stack instead of the heap? Yes, an object can be stored on the stack. Code to create an object on the stack: void somefunction( ) { /* create an object "m" of class Member this will be put on the stack since the "new" keyword is not used, and we are creating the object inside a function */ Member m; } //the object "m" is destroyed once the function ends Code to create an object on the heap: Can the stack grow in size?

Android 4.0 Ice Cream Sandwich review The next version of each smartphone's operating system is always the best. We impatiently wait for the latest and greatest firmware to come around, expecting it to liberate us from the shackles of last year's code and features that haven't shown up yet. This happens incessantly with Google's Android OS, and version 4.0 -- unveiled at this year's I/O conference in May -- is no different. Known as Ice Cream Sandwich (referred to henceforth as ICS), the last word in the title indicates the merging of Gingerbread, the most recent phone platform, and Honeycomb, the version optimized for use on tablets. We knew this much, but were otherwise left with conjecture as to how the company planned to accomplish such a feat -- and what else the new iteration had in store. But now the time of reckoning is upon us, and the Samsung Galaxy Nexus -- Android 4.0's mother ship -- is slowly spreading across the globe, its users being treated to this year's smartphone dessert. Table of Contents See all photos

Don’t Be Trapped By Dogma For me, the greatest lesson that Steve Jobs taught is summed up in this statement from his renowned 2005 Stanford Commencement speech: “Don’t be trapped by dogma, which is living with the results of other people’s thinking.” Steve, and the companies he built, proved highly resistant to dogma, to other people's thinking. No one could imagine what someone would want with a personal computer until the Apple II came along. The Macintosh was initially dismissed as a toy. How could Pixar ever think people would sit through a feature-length computer-generated animated film? Who is going to spend all that money on an iPod? Most companies are dogma machines. Dogma isn't just about what you make, but how you do it. Companies also have to be willing to question their own dogma. Apple, under Jobs, continually remade itself. Mourning and rememberance are important and good.

Challenges Let's walk through this sample challenge and explore the features of the code editor.1 of 6 Each challenge has a problem statement that includes sample inputs and outputs. Some challenges include additional information to help you out.2 of 6 Select the language you wish to use to solve this challenge.3 of 6 Code your solution in our custom editor or code in your own environment and upload your solution as a file.4 of 6 You can compile your code and test it for errors and accuracy before submitting.5 of 6 When you're ready, submit your solution! Remember, you can go back and refine your code anytime.6 of 6 Check your score

Related: