In school we were taught Basic. As a maths undergrad I studied programming, primarily C++. So long ago now, I don’t remember much at all.
If I were to learn programming now, it’s a minefield: What language to concentrate on? What’s the best route for a beginner to follow? What hardware requirements are there so I can get going (economically)? Are there different routes one could follow that determine what kind of programming they could end up doing? Or is there a generic language I can start with, then branch out from there? How long will it take me to learn (to reasonable level of competency) any given programming language?
Some general thoughts and research (in no particular order):
- Finance systems implementation (current project): Unit4 (formerly CODA) Dream accounting software is “built on Windows technology”
- Windows OS mainly uses C, C++ with some C# for Windows, also some parts in assembly language
- XML (Extensible Markup Language): A metalanguage, powerful option for importing/exporting data between different users/applications. Through a set of pre-defined rules, documents or data can be formatted which is machine-readable but also remains readable by humans. Referred to in the book Digital Accounting: The Effects of the Internet and ERP on Accounting by Ashutosh Deshmukh. Used by various governments in ‘tagged’ accounting submissions. Not widely deployed by small businesses despite it’s relative ease to implement. Could be used for (dare I say it) passing information between departments
- Business systems implementation (current project): Maginus suite of products – OMS and EpiServer – built on ?? and C# respectively:
- “EPiServer CMS is 100% based on .NET technology. … EPiServer CMS is written in C#, but developers are free to use another programming language such as VB.NET or J#. ” (source)
- “.NET is a technology launched by Microsoft to meet future technology requirements. Some of the advantages of development with .NET:
- Easier for developers to implement customer solutions quickly, because it is possible to create a number of template development functions in Visual Studio .NET using drag-and-drop functionality
- Increases the opportunities for integration with other systems and platforms using Web services.
- Improves performance using the integrated cache functions in .NET.” (source)
- Someone online said “.NET shipped with Windows – a lot of .NET is in C#” (source?)
- Microsoft SQL Server: relational database, administration, database query tool (creating, editing and executing SQL queries and scripts), various import and export tools
- Microsoft Visual Basic, VBScript
- Software Engineer for web applications: HTML, CSS, MySQL, Node.js
- Cloud technologies: AWS/Amazon Web Services/Azure
- Unix and Linux: both built on C, with some parts in assembly
- Android: JAVA, C, C++
- Solaris: a Unix operating system originally developed by Sun Microsystems, in C and C++
Possible targets (bold = definite): ASP.NET, MVC, Angular JS, Web API, C#, C++, Python, LINQ, Microsoft SQL Server, SQL Reporting Services, ORACLE, jQuery, CSS, AJAX, HTML5, XML and Entity Framework, WCF, MVC, nUnit, Scripting (VBScript, JavaScript), Visual Basic, Golang, Ruby on Rails, Ruby SQL, Linux,
Core requirements for currently-available software engineer roles: must be able to demonstrate proficiency in C# programming and have an extremely thorough and logical approach to their work. (I can tick off the latter two requirements, no probs.)
——
As well as researching target programming language(s), also need to gain working understanding of various development processes, e.g. Agile, Scrum. To be covered in a separate post.
——
Some companies/sites to research further (incomplete list):
- Aquafold: provides database, collaborative and analytics products