MenderD3 was a team project that I worked on with another classmate (http://wiiuse.net/blog/) in our computer graphics class in college.
The desktop application is a viewer for quake models that allows various manipulations of quake md3 models. It was written in both C and C++. The user interface was written using the Qt framework (C++) and the underlying graphic implementations were written in C.
This project was the most beneficial part of my college career besides working at the university as a Linux administrator. This is when I really grasp the concept of object oriented programming, self documenting code, good commenting, and code readability.
OOP is a core concept in the majority of modern computer languages and if you don’t understand the core concepts then it is much harder to succeed in the industry. Having code that is readable and easy to follow is another key to being successful as a developer. If people can not understand your code than it is hard to maintain and that makes working in a team environment very difficult.
Without this project I don’t think my programming skills would be where they are today. So, I would like to thank my classmate for the idea and for helping build not only the project but my skill set.
I am currently in a position where I am the sole individual on a in-house project. This project is used for new employees to work on until they are moved to their permanent position. Being the sole individual on the project I am responsible for the new employees from anywhere to a week to a month (hence short timers).
I have never managed people and I guess I technically still have not. I think I am more of a technical lead. I am responsible for introducing them to the project and getting as much out of the individuals as possible. There are many hurdles you have to jump:
- Most incoming developers are Java based and don’t have any C# or .NET MVC experience.
- Have you understand what the project is very quickly.
- Must adjust to new development environment (Repository, IDE, Issue Tracker, etc).
- Communication. All short timers are based in a satellite office about 90 minutes from the corporate office.
Now that I am done complaining maybe I can give some hints to help “manage” the situation.
- Communicate – First week twice a day, second week once a day, and after the second week talk as needed. You should also be available as much as possible especially in the first 2 weeks.
- Start small – Start with easy tasks. Even the ones with 20 years experience need time to adjust to a new setting and development style.
- Document – Make sure you know what they are doing and how they did it. This is especially needed if they don’t finish that new feature and your stuck with code you don’t understand. This goes for in code documentation, issue tracker notes, and wiki documentation.
- Freedom – Developers need it and flourish in it.
There is more to learning a new programming language then going over a few tutorials on how to build a blog.
I have been using Ruby.On.Rails on the side for about 2 years and after giving a short talk about Ruby I realized I didn’t really know Ruby or Rails. I had a vague understanding of Rails and MVC and Ruby was just another language to write if statements with.
I know the general syntax and concepts to do the basic stuff in Java, Ruby, C#, and a few other languages but I don’t think I have an advanced knowledge of any. To make excuses I think it is because when ever I need to learn a new language it is on a time restraint and I don’t seem to have the time to do the grunt work that is needed to “learn” the language.
Time needs to be spent to go through examples, read multiple books, and dive into the parts of the language that are unique to itself. By making the time you will gain a much better understanding and mastery that will allow you to build more effectively and efficiently.
I need to take that next step to become a better developer.
Upgraded my key chain last night.
I got an 8 GB flash drive for Christmas last year and I was using it rarely. Stealing the idea from my brother I decided to move the flash drive to my key chain.
I am loading the drive with portable apps and for general storage use.
Current Feature List
- Electronic Car Lock
- Flash Drive
- Car Keys
- House Keys / Key Tool
- Work Keys
- Center Clip
- Easy to remove modules
- Flash drive
- Key Tool
If you are a manager of developers you must set them up to succeed.
Developers need the proper tools, support, and expectations to be all that you want them to be. If there is disorganization in the project, in the team, or in the company than
There are three things that developers need when starting a project. This project could be in the middle of development or could be starting tomorrow.
- Project Manager. This individual does not have to actually be the project manager but they need to be the person that knows the specifications of the project front and back. Questions like ‘How should inputting the account data work?’, ‘Do we need a pie chart or a bar chart?’, and ‘Do they want a tabbed interface or a sidebar?’
- Technical Lead. If there is an existing code base then this person is essential. Without having some direction new developers can be lost in a sea of abstraction and new technologies.
- Proper Expectations. This is going to change on experience and how the first couple weeks unravel. Is the new developer really getting it or do they need some extra attention or some training?
When bringing in new developers or moving existing developers to a new project make sure they have what they need to succeed. By providing essential tools and support will allow your developers to be productive, happy, and create awesome.
Curly braces should almost never be on a new line. So here are the steps to make MS Visual Web Developer Express more awesome.
Tools -> Options
Select ‘Show all Settings’
Text Editor -> C# -> Formatting -> New Lines
Uncheck all boxes except for the last three (the last three are all under the ‘New line options for expressions’ directory).
This will ensure that all curly braces are on the same line as the class, function, else, catch, and so on.
I enjoy feedback and conversation when I am writing. By getting different viewpoints your thoughts and ideas can be enhanced, changed, or reinforced in a beneficial way. After using and enjoying Tumblr for a few months I realized that they don’t support comments or have many advanced features that WordPress has. So, I decided to switch to WordPress for my public blogging needs.
For a public blog I believe WordPress is far superior, however, for a personal journal or anything where feedback is not really needed I like the simple interface of Tumblr.
I will continue to use Tumblr for my monthly career journal and most likely any other personal writing needs in the future.