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.
Comments
Add javascript to the end of list, and group it with 6 & 7.
Rough system administration. I don't think you should be able to step right into a network administration role, but a windows developer should know windows inside out. Same for a linux or mac dev. A web developer should know the server environment for their chosen language, whether that be linux+apache or windows+iis.
Unicode vs ASCII, and encoding.
Source control/bug tracking/unit testing.