The First Programming Language ACD

I was recently asked ‘what is your recommendation for the first programming language to teach in a three years academic program?’. Thinking about this question, it was clear to me the programming language itself is just a tool and the topics been taught are the ones that should be in question.

Unlike many others, I believe there is no place to waste precious time and have a course that focuses solely on teaching procedural programming. Based on my experience teaching courses during the years there shouldn’t be any problem teaching the students during the first course they take object oriented and functional programming. I do it for years in private professional courses.

The gap between the industry expectations and the knowledge students have when graduating continuously grows. The only available way for closing this gap is by leveraging the level of all practical courses starting with teaching object oriented and functional programming during the first semester of the first year.

C# is one of those very few programming languages that supports object oriented and functional programming characteristics. Java supports object oriented programming only. Other options, such as Scala and F#, do not belong to the main stream. Thinking about the students interest in acquiring practical skills it is obvious that C# should be the first programming language they learn.

Given today available programming languages, C# is the richest. Knowing C# you will find it very easy to learn other programming languages. Knowing C# you can easily learn Java (You cannot say the opposite. Java is a poor programming language comparing with C#). Knowing C# you can easily learn C++ (It would be simpler comparing with Java. C# supports many C++ capabilities Java does not). Knowing C# it would be much simpler (comparing with Java) to learn functional programming. Functional programming characteristics exist in many conventional programming languages (PHP, JavaScript…). Knowing C# it would be simpler to learn those programming languages.

Share:

The Visitor Design Pattern

The Visitor Design Pattern

The visitor design pattern allows us to add operations to objects that already exist without modifying their classes and without extending them.

What are Anti Patterns?

Anti Patterns

Unlike design patterns, anti patterns just seem to be a solution. However, they are not a solution and they cause additional costs.

Virtual Threads in Java Professional Seminar

Virtual Threads in Java

The use of virtual threads can assist us with improving the performance of our code. Learn how to use virtual threads effectively.

NoSQL Databases Courses, Seminars, Consulting, and Development

MongoDB Design Patterns Meetup

The use of MongoDB involves with various cases in which we can overcome performance issues by implementing specific design patterns.

image of woman and database

Record Classes in Java

Learn how to define record classes in Java, and when to use record classes in your code. Stay up to date with the new Java features.

Accessibility | Career | Conferences | Design Patterns | JavaScript | Meetups | PHP | Podcasts | Python | Self Learning

Teaching Methodologies | Fullstack | C++ | C# | CSS | Node.js | Angular | Java | Go | Android | Kotlin | Swift | Academy

Front End Development | Scala | Architectures | Cloud | Big Data | Internet of Things | Kids Learn Programming

The Beauty of Code

Coding is Art! Developing Code That Works is Simple. Develop Code with Style is a Challenge!

Skip to content Update cookies preferences