- Recent
- Popular
- Tags (5)
- Subscribers (62)
- Software Engineering Task: Mentoring and Assisting OthersYesterday
-
As a software engineer moves throughout their career, they take on more responsibilities. Some of these responsibilities are mentoring junior developers and assisting others that may be having problems. Mentoring is thrown around in many conversations when dealing with senior level professionals. It is assumed that people know what to do when it is mentioned. I am not going to assume that here, so let’s take a look at the dictionary definition for mentor:
- a wise and trusted counselor or teacher
So, as a mentor, you are expected to be a counselor and teacher of people that may be your junior. As a software engineer, what should a counselor or teacher be expected to actually do? Let’s look at some examples:
- teach what the expected coding and documentation standards are for your organization
- assist with debugging issues and testing techniques
- explain why a certain design or data structure is appropriate (or not) in specific situations
- help determine what issues could lurk within high-level designs
Much of this really looks like teaching someone the things that they would not learn in schools. Some things are better learned through experience, so it is still appropriate and not someone’s failings. As you can see from the list, much of this mentoring work
- Simple Tips For Clean Memory Management In JavaFebruary 4
-
The other day I was asked how much I knew about Java garbage collection. I am not a performance guru, so I admitted that I knew very little, basically only that it works. As the conversation continued, I realized that while I did not know much about the internals of the garbage collection mechanism, I did know a few things what it did.
First, a quick refresher on how garbage collection works in theory. You continuously create objects in Java, but at some point the memory needs to be cleaned up. Generally, if you create objects within a method, those objects may be garbage collected when the method has completed. Another important point is that if you keep passing objects around to various other classes and methods, those objects will only be garbage collected when there are no longer any references to them. Sometimes the garbage collector will clean more aggressively if you start using large amounts of memory as well. Granted, this is a simplification of the way garbage collection really works, but it gives us some basic ideas on how to keep your java application running smoothly without those weird OutOfMemory errors.
Do not create a lot of objects. This sounds silly, but a surprising number of issues can be resolved by limiting the number of objects that get c
- Traditional Programming Language Job Trends – February 2010February 2
-
About 6 months ago, I looked the the job trends for various programming languages. Given that TIOBE released their yearly programming language rankings, I figured I should update the job trends again. In this update, I will use the TIOBE rankings to determine what languages to include. Based on those rankings, I have changed the list from Cobol, Java, C++, C#, Visual Basic and Perl to Java, C++, C#, Delphi, Objective C, Perl and Visual Basic. The Delphi inclusion is purely due to the TIOBE ranking and has nothing to do with any opinion I may hold.
First, let’s look at the job trends from Indeed.com:
- Apple’s iPad Is What Laptops Should Have BeenJanuary 28
-
Well, Steve Jobs dropped a bombshell on people. The iPad was not what people were expecting. As was expected, some people love it and others hate it. However, the one point of agreement between these people is confusion. What exactly is the iPad revolutionizing?
There was plenty of hype that the Apple tablet device would revolutionize computing as we know it. This is obviously unattainable, even for Steve Jobs. The fact that the iPad is positioned as a device between your iPhone and your main computer is also confusing. We have netbooks right now, but they are really just smaller laptops and only provide some extra mobility. Steve Jobs professed his dislike of netbooks and seemed to be pushing the iPad as their replacement. And this is where all the confusion starts.
So, what were people expecting? First, it had to act like a big iPhone or a big iPod touch, but it can’t be just a big iPod touch. It still needs to have that Apple sexiness, but there has to be some business uses too. Oh, and it has to have a ton of features like facial recognition, speech
- Apple Is Successful Because They Make Complex Look EasyJanuary 26
-
As people wait in line to worship at the Altar of Apple, I figured you might want a break from the rumors. However, a post I planned to write months ago decided to take a more concrete shape due to the fanboi frothing. Apple is successful with much of its new technology. Not just a little successful, but hugely successful. They put the Macs back on the map by catering to their digital media users. By doing this, it seems like Apple had seen the light and realized their true path, make complex tasks simpler.
In that post months ago, Process Rarely Fixes The Problem, I made a mistake. I took the post in a completely different direction than I originally planned. I had focused on the process aspects and risk management. The original post I was thinking of writing was summarized in this one line:
There is another approach which has wider reaching affects, and that is simplifying the tools.
In many cases in software development, when complexity rises, people put processes in place to manage the risk. This is treating the symptom not the problem. What Apple did was look at digital media gadgets and realize that they mostly suck. There were portable CD players and some played MP3s. However, there are significant technical hurdles to providing a good listening experience. With CDs, you had the possible skip
