3 posts tagged “developers”
In the midst of programming there will come a time where a certain skill will be incredibly useful to know to solve either a quick problem or a large dawning task. With this are 7 very important skills that every programmer should either learn or already have. Here they are:
1. Regular Expressions (Regex)
2. Structured Query Language (SQL)In the realm of searching, text-parsing and iteration it is all too common for programmers to put together their own form of searching through unstructured data. (By all means, don't fall into this path) It's good that you can figure out how to parse unstructured to slightly uniform data, but there is an easier path. Learn Regular Expressions and your life will be a billion times easier (relatively speaking). Although regular expressions seem ridiculously ambiguous, they provide an important tool in your coding career. Learn it!
- (Here's a powertoy to help: RegWizard)
3 & 4. Extensible Markup Language (XML) and XML Schema Documents (XSD)Information, the very reason technology even exists, will always be as important as the people who are making the technology to use it. It is not only important to understand how to properly model information, but how to query it. Luckily, there is a standard query language that you can use to search for that information of yours. SQL provides the means for connecting information models with the all important people in information technology. Learn it!
- (Here's w3school's website to help: SQL Tutorial)
5. XML Path Language (XPath)Before this technology there was what I like to call: chaos. It was chaotic because the greatest uniform structured format was the dot-slash format. Data was just everywhere. Luckily, the industry finally adopted the XML standard which we all love and use today. XML is a tag < > based format where all data is structured using a tree-node and attribute like structure. With XML you can turn this:
John Doe
11-18-1987
Software Developerinto this:
<?xml version="1.0" encoding="UTF-8"?>
<Person FirstName="John" LastName="Doe">
<Birthdate>11-18-1987</Birthdate>
<JobTitle>Software Developer</JobTitle>
</Person>Giving back the meaning and well-deserved value in information. Not only that, but I and the rest of the developer audience can understand what it is your model is talking about. On top of XML is a schema that we can create for validation. This is called an XML Schema Document (XSD). XSD's are very useful for creating standards for your XML documents and it is definitely a standard that you should learn!
- (Thank you w3schools: XSD Tutorials)
6 & 7. Hypertext Markup Language (HTML) and Cascading Stylesheets (CSS)On top of the extensible tree is another key language in searching through XML-based documents. XPath provides programmers the ability to quickly sort through XML selecting, replacing and rearranging any trees, nodes and data. XPath is not nearly as complex as regular expressions and it looks as if you are searching for a folder on your hard drive. If it's easy, then why not learn it!
- (w3school's website provides an awesome tutorial set: XPath Tutorials)
There are of course other skills that do not involve much technical standards such as: understanding object-oriented programming and having problem solving skills. Most of these with and soft-skills are typically acquired over time with more and more experience in the computer science industry. Ask questions, think outside the box, research other ways, draw a picture, showcase your work, but most of all have fun with it: your brain will thank you for it :)We've come a long way since HTML, the foundation laid down by HTML and CSS has allowed millions of users to create their own websites. The web is a funny place. It can also be an ugly place if you're not careful to understand the proper uses of web markup tools like HTML and CSS. With HTML it's important to note that it is used to give usage with a visual understanding of XML based data. Whether the data involves an address to media or a texbox, the markup allows browsers to output that meaning visually to all the users. A common mistake with HTML is to use it in styles. While HTML does include a way for adding style to your webpage, it limits your ability to change those styles in an instant. That's why it's important to not only learn HTML properly but also learn CSS.
Information Technology (IT) has varying definitions among the community however, it can be best described as a combination of people connected with information. The information varies depending on the industry as well as the strategy to implement. While it may be true that software technologies are common and affordable, even open source, it does not make software any less meaningful. The role of technology in software development is to facilitate an environment for the creation of new systems capable of distributing or processing knowledge/and or models. Given that truth the meaningfulness of the system will always be dependent on the people.
Often times I hear fellow developers getting excited about brand new technologies, architectures and even wonderful designs and graphics. The IT industry has a sort of hobby of engulfing themselves in there surrounding world. I embrace the fact that fellow developers, designers and engineers put time into discovery and exploration of new or even older systems. However, there are times when the cost-benefit factors outweigh the efforts and work. Project teams, while in their best effort to create and explore, will often take months to even years longer than needed. I propose that project failure is not a result of poor planning, failure to learn what the user needs, multi-task dependency or even the famous death march schedule; project failure, in my opinion, is the result of not realizing a strategy.
A project typically starts out with planning goals, describing requirements and collecting resources. For the better part of the project, variables are introduced, studied and worked on. The problem is that as the project gets further along, more and more variables are introduced causing a ripple effect of analysis and work distribution. If the project takes too long or simple fails to complete the requirements, most would say that the problem is organization.
If a football team were to organize a plan in which the ball is passed in a particular sequence between specifically positioned players, their success is dependent on each of those players both being present at the exact location, and remembering exactly when, from whom and to whom the ball is to be passed; moreover that no interruption to the sequence occurs. By comparison, if the team were to simplify this plan to a strategy where the ball is passed in the pattern alone, between any of the team, and at any area on the field, then their vulnerability to variables is greatly reduced, and the opportunity to operate in that manner occurs far more often. This manner is a strategy.
Put simply, a project team is built because of what and how much they know. But having the best and the brightest does not instantly make you a winner and it certainly doesn't finish a project with the magic of their brains. The same goes for visionaries, a project won't survive on ideas alone even if they are prototyped. As well as much as it is important to focus on interaction design and enabling ease of use with your audience, it doesn't necessarily make a project meaningful, maybe pretty. No, the first step is quite firmly about creating a playbook for each and ever level.
Here are a few links to help you get on track:
I'm going to take a break from the Audio-Visual tutorials and talk a little bit about game development, specifically the teams that make it up. While game development can be a dawning task, I have come up with a few helpful hints on putting together a team that should help keep you on track.
- Artists - Sketching
You don't need much if you're just starting out, but it's always good to be able to sketch up a concept, if not at least have someone on the team who can. Sketching can be anywhere detailed as it needs to be. Concepts shouldn't take very long to sketch depending on it's scope. A concept artist should be able to take what the game designer(s) create(s) and sketch that into a visual. Often times a sketch artist will need to go into more detail by using actual rendering tools like Photoshop or something similar. - Artists - Modeling
If you are going to be working with 3D games it is a necessity to have someone on the team with enough experience in 3d modeling. This artist should be able to take what the sketch artist has come up with into a realistic 3d visual. Unless there is a texture artist available, texturing will often be performed by this artist as well. - Artists - Texturing/Shading
When resources are available, a game development team may also include texture artists. In this role, the person should be able to combine the efforts of the sketch artists with the modelers in order to create the final visual in the title. Texturing itself is usually done in layers depending on the amount of detail necessary. It is not uncommon for these artists to also perform shading techniques on top of their normal tasks. - Artists/Musicians - Sound
Sound, because no game is complete without the necessary audio-visual aspects. This artist should be in charge of providing all the necessary sound effects, music and fonts needed for a given game title. This role may be played by a developer but it is usually filled by ones with musical and artistic skills. - Designers - Game Design
For the most part game design is a collaborative effort, but it is best to have someone who concludes the final design on game concepts. The game designer should be able to explain what to include as well as exclude from a game title. Often times this designer will perform consulting on visual aspects of the gameplay as well as general environmental factors that make up the game. - Developers - Game Development
The core of the team who's role is to put the pieces of the puzzle together. This role can vary in many scenarios depending on the requirements of the game. The job may include writing networking code, artificial intelligence, camera angling, character movement and interaction among other tasks that the game may require. Be sure to understand the necessities of the game and the availability of tools before choosing this role and the skills.
While it's not entirely necessary to have the above people on your team, you or the people on your team may fill one of the above roles at some point in your game development cycle. As you progress, it will be necessary to also have testers on the team, but I've always approached this issue with test-driven development.
Aside from roles on a game team, there are a few things to keep in mind about creating a game. The first is the concepts included or excluded in a game. When in doubt, prototype your concepts as quickly as possible. Quick designs or sketches for a prototype shouldn't take more than an hour or two and if it does then it needs to be simplified. Building on concepts isn't necessary bad though; the larger and more complex a concept gets, ideally, the more prototypes you should already have. By then end of your game designing phase you should be able to present each aspect of the game with prototypes.
That's all for now :)