A little something for me to follow up on when I’ve got some spare time…
Computer Science
Diving Into Data: Course Listing (work in progress)
Stanford Engineering Everywhere
URL: https://see.stanford.edu/Course
Computer Science/Programming: Programming Methodology; Programming Abstractions; Programming Paradigms
Artificial Intelligence: Introduction to Robotics; Machine Learning [Read more…] about Diving Into Data: Course Listing (work in progress)
Resources: Programming / Data Science / Analytics (work in progress)
Universities
Stanford University: http://cs.stanford.edu/research/computer-systems
Review Piazza for participating courses/universities & professors in relevant fields: Computer Science – Mathematics – Engineering – Economics
Wharton Customer Analytics Initiative: http://wcai.wharton.upenn.edu/
Companies
Marketing Platform http://rocketfuel.com/
Business strategy through data http://www.meltwater.com
Data management software http://www.sas.com
Data science & consulting http://www.persontyle.com/
Networking
Deep Learning London meetup http://www.meetup.com/Deep-Learning-London/
[Read more…] about Resources: Programming / Data Science / Analytics (work in progress)
Software Engineering Course Listing
(All are for Windows unless otherwise stated.)
Source: Stanford Engineering Everywhere
Course: CS106A – Programming Methodology
URL: https://see.stanford.edu/Course/CS106A
Stanford Eclipse for Windows Vista and XP – Download
Java 1.6 JRE installer for PC – Download
Where to Start in Programming 2
Option 1: the intention is to create something specific right now (start with the end in mind)
- Web developing: HTML, CSS, JavaScript, PHP
- App developing: Java for Android, or Objective C for iOS
- Mainstream programming, various uses: C, C#, Java, Perl, Python, Ruby
Option 2: the intention is to become a programmer, we can worry about what to create later (eat, sleep, code)
- To learn to code efficiently, at machine-level, choose C
- Advantages: you learn the fundamentals of coding; see how the language interacts with the hardware; requires discipline so teaches you to code efficiently
- Disadvantage: strict; not really beginner-friendly; longer learning time than some other languages; can be frustrating (e.g. debugging for errant semicolons)
- To learn the principles of Object Oriented Programming (OOP), choose Java
- Advantages: highly practical language; learning Java means you’re learning the OOP principles – allows for easier/faster learning of more modern languages like C++, Perl, Python, PHP; taught for free via Stanford Uni’s open-access Programming Methodology course; used extensively across many platforms; used in Android app development; long history of use means lots of standard examples available
- Disadvantages: ??
Where to Start in Programming
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