Intro
I got a nice message and a question from one of my readers – Mike and decided I would make my response a blog post. The short answer to the question in the blog title is [ jump to the end ]. If you have not jumped to the end, there are some things you will gain from the in-betweens. Let us start. Please note, I will share only from my personal view and experience.
I decided for C# sometime in November 2010 in my first year at the university studying computer science (you do not need a CS degree to be a programmer/developer/software engineer). Would I have picked Java? – maybe. I did a Java course in my third year, and I loved it, but C# had already got my fancy by then. Java and C# are remarkably similar in the way they are structured. Both are
Strongly typed
Object oriented
Cross-Platform
Free (Java to a wide extent (check OpenJDK vs Java SE vs Java EE), C# all the way)
Kinda descendants of C and C++
Advanced
However, there are some subtle differences that makes C# shine more for me,
100% Free and open source
Ease of installation for a beginner
Easy learning curve (probably because it was my first love)
Effortless application to various platforms (check
this
)
Lightweight – for the PC configuration I started coding on (although these days, which is not an issue)
Getting a dev job with C# vs Java (In Nigeria)
In my personal experience (90% of my career has been in the enterprise space – so my view may not be so wide), there is more demand for C# developers than Java. Yes, I have seen lots of Java developers – mostly on the backend side of the gigs – but not as much as C# developers.
Most of the scenarios I have seen Java excel in the Nigerian enterprise space is through outsourcing partners of such enterprises that build back-end systems and integrations for them. Java excels a lot in the fintech space for some of the core banking ops in Nigeria.
The apps you use in Nigeria
Most of the solid apps and solutions I have seen built in the last 3 years in the Nigeria fintech space (I have my biases) have been with C#. You will see most of them mix this way (Note: ASP.NET , Xamarin and Razor are development frameworks with C#).
ASP.NET
Web API, Flutter Mobile, React Front End
ASP.NET
Web API. Xamarin.Forms Mobile, Razor Front End
Java Web API (Spring boot), Flutter Mobile. Angular Front End
Node Web API, Flutter Mobile, React Front End
ASP.NET
Web API, React Native Mobile. React Front End
There are a few (older institutions) you will see with this combination
ASP.NET
Web Forms, Java for Android, Objective C for iOS
ASP.NET
Web API, Java for Android, Swift/Objective C for iOS, Razor Front End
One of things that may interest you to know is that most of the banks use outsourced solutions for managing their core engines – so you may want to find the companies they outsource to and find out what techs they are using and base your learning on those.
So far, I only know one bank that built their own core banking system – Kuda Bank. You probably have seen this in the news.
You may then want to ask, is it just in fintech that I can find a job as a developer? My answer to that is no. There are many other industries that employ programmers – eCommerce, logistics, start-ups, oil and gas, telos, and lots more.
The Answer
Yes.
I would still pick C#. These days, I do more CICD and cloud deployments and automations than I code – did C# contribute to that skillset? – Yes. Any other programming language would have also.
One of the things I advise programmers starting out is that you should decide on your target tech niche on the start of your career. Can you diversify? Definitely.
When I started out, I picked Microsoft technologies as my niche and decided, and I would know as much as I could about it – from coding to productivity to the cloud. Today, that is what I’m mostly known for – aside from being a saxophonist and a lover. Have I dabbled into other niches? Yes. I have deployed React, Angular, Python, Java, and many other languages apps and services during.
So, my advice would be
Identify the niche you want to be known for
Research the languages and technologies needed for that niche
Begin your journey by learning the fundamentals
Maintain focus
Document and share your journey (I made a
short video
about this)
Build connections within your niche
Secure that job
Grow in your role
Give back to the community
I hope this answered a bit of the question. What do you think? Let me know in the comments. Thank you.