This is the first part of the OpenExchange: Age of Developers series. This article is meant to be a short guide for translators who are willing to augment their productivity and ease their day to day work by writing plugins for SDL Studio, but they don't know from where to start.
Age of developers - table of contents###
As I release parts of this series I will update this page with links to the articles.
- I'm a translator do I need to write code?
- I'm a developer, why bother with translation industry?
- Configure OpenExchange development environment
- OpenExchange:Where do I start?
- About SDL Studio SDK
I'm a translator do I need to write code?###
The short answer is yes. In order to make an SDL Studio plugin and publish it on the SDL OpenExchange you need to write code. SDL Studio is developed using Microsoft technology called Microsoft .Net. The platform allows you to build all kind of apps from desktop (like Studio) to web and mobile. Scott Hanselman, principal program manager and community architect at Microsoft, estimates that there are ~8 million .net developers out there. The Microsoft .Net platform has support for many programming languages but the most popular is C# (CSharp). I would recommend learning this language because you will be able to find many resources to help you in your learning journey.
Why should I bother?###
This is a tough one to answer since every person is different and there is no silver bullet answer. Something that resonates with one person might not resonate for someone else. So here's my list of reasons that might help you answer this question:
- Are you waiting for a feature to be added in the software? Take the responsibility into your own hands and fix it. You will feel accomplished after you've done it, you will gain recognition in the industry and why not even see if you can earn some extra money with it.
- Everyone Should Learn To Program, But Not Everyone Should Be A Programmer What if only writers could write and when you needed to write an email to your boss you had to ask the company writer do it? I agree that programming and writing are not the same thing but what I'm trying to say is that learning to program doesn't necessarily mean you became a professional developer. There's much more than just writing code to being a professional developer.
- Nowadays learning to write code is much easier than it was 5, 10 or 20 years ago. You have much better tooling and the languages are much more abstract, meaning you don't need to know all the details of how the computer works in order to write a line of code.
- There is a strong movement for every child to learn how to program. This doesn't mean everyone should become a developer but it's the best way to promote computational thinking. Computational thinking teaches you how to tackle large problems by breaking them down into smaller, more manageable problems.
I hope this will help you understand why should you bother to learn to program (or write code).
Where do I start?###
The first thing you need to start writing apps for the SDL OpenExchange is Microsoft Visual Studio. This is the tool of choice when writing code for the Microsoft .Net platform. The good news is that you can get a free version with all the features you need. This version is called the Visual Studio Community Edition and can be downloaded from here. You can select the 2015 or 2013 version, both of them are suitable for creating SDL OpenExchange plugins. 2015 has only just been released and contains lots of new features for experienced developers.
The next step would be to start learning some basics of programming in C#. There are books you can read, but personally I like watching videos so here's some courses you could look into:
- C# Fundamentals for Absolute Beginners This will walk you through all the code examples you need to build basic applications using C#. At the time this video was recorded the Visual Studio Community Edition had not been released so this is not mentioned but I recommend you to use it instead of the Visual Studio Express Edition.
- Software Development Fundamentals This is a very detailed presentation on software development in general not necessarily only with C#. Some of the parts might be a bit advanced and are not essential if the main objective here is to learn some basic programming rather than becoming a programmer.
- C# Fundamentals with C# 5.0 This is a great video which I highly recommend but it's different to the first two in my list because you have to pay for this service. You do get over 4000 courses of great quality though!
Although watching those videos provides lots of information the best way to really learn is by practice, so I highly suggest you stop the videos and practice what you've seen at every opportunity.
If you prefer to learn from books I highly recommend C# in depth but I would still suggest you supplement the book with some of the above videos.
One last thing, you're not alone in this so don't hesitate to ask for help. As I've said earlier in the article, there's a really big .net community. My suggestions would be to ask any questions on the SDL Language Developers community website. Don't hesitate to ask general programming questions in there even if they are not directly related to any of SDL products. There is the Getting Started area which is just the right place for this type of discussion.
My best advice is to have patience, practice as much as possible and don't be afraid to ask. I'm sure the results will come sooner or later. Happy coding.
Please leave a comment if you have any questions.