swirl
Home Software Blog Wallpapers Webtools
Learning to develop software has become a lot harder
Saturday 01, October 2016   |   Post link

Learning to develop software has become a lot harder. You may argue that programming is still the same; we still have the loops, the conditional statements, the same patterns and maybe even similar data access technologies, so why shouldn't writing a sort-of-useful data enabled application be the same as it was 10 year back?

Thing is programming is still the same but software development is much more than programming. frightened I found this out when I sold my first software in 1996, a Windows File Manager. The users' didn't just expect an .EXE. In addition to developing the application, I also had to learn how to make .HLP (Windows help) files, create an installer think about licensing and versioning among other things.

Unfortunately developing a complete software has become a lot harder today. Things which could be taken for granted cannot be taken for granted any more. Take platform - the operating system for instance. The number of platforms which people use has changed drastically. PC was the center of an average technology user’s life, Linux was in its infancy and MacOS was unheard of. Backward compatibility and even forward compatibility was almost guaranteed on Windows mainly because of the stability of the Win32 API. Most Windows applications would work on any Windows flavor without any change. Life was good! Today the PC is no longer the center of a tech-savvy person's life, it his/her phone or tablet. To complicate matters further, you can't even take the mobile / tablet's operating system as a constant, it could be Android or iOS or maybe even Windows. Being a good programmer is again not a guarantee of making something usable, you'll also need to have above average skills in user-experience and UI design. Users have become quite intolerant of average looking software. Let's not forget about the hoops a mobile developer has to jump through to get an application published.

With the increase in connectedness via the Internet, most application now need to have something to do with enabling data access & sharing and that too from almost anywhere. It’s no longer enough to just know how to program the device but you also need to know how to make the data available to the application via the Internet. Now coming to the Internet, we again have a plethora of options each coming with its own steep learning curve. AWS? Azure? Google? Who uses traditional hosting anyway? And if you do you aren't going to get any respect from snooty architects. Oh and by the way did you write automated unit tests? No? What a shame, you're not a real developer! So now you've nailed down the Cloud provider you want to use for you application but it’s difficult to continue to use this infrastructure in a cost effective way - basically zero cost since all you wanted to make was a somewhat-useful application with the main intention of learning new technology. Learning technology doesn’t come cheap anymore.

Gone are the days when cutting edge technology meant learning things like desktop programming, distributed programming using Java or DCOM or maybe building a dynamic website with pHp and MySQL all of which could be done using a single machine at home and feeling that you have learnt something substantial. Today's technology world respects only the mobile, the cloud, big-data and analytics.




Comments

Posts By Year

2024 (4)
2023 (5)
2022 (10)
2021 (5)
2020 (12)
2019 (6)
2018 (8)
2017 (11)
2016 (6)
2015 (17)
2014 (2)
2013 (4)
2012 (2)

Posts By Category

.NET (4)
.NET Core (2)
ASP.NET MVC (4)
AWS (5)
AWS API Gateway (1)
Android (1)
Apache Camel (1)
Architecture (1)
Audio (1)
Azure (2)
Book review (3)
Business (1)
C# (3)
C++ (2)
CloudHSM (1)
Containers (4)
Corporate culture (1)
Database (3)
Database migration (1)
Desktop (1)
Docker (1)
DotNet (3)
DotNet Core (2)
ElasticSearch (1)
Entity Framework (3)
Git (3)
IIS (1)
JDBC (1)
Java (10)
Kibana (1)
Kubernetes (1)
Lambda (1)
Learning (1)
Life (7)
Linux (2)
Lucene (1)
Multi-threading (1)
Music (1)
OData (1)
Office (1)
PHP (1)
Photography (1)
PowerShell (2)
Programming (28)
Python (1)
Rants (5)
SQL (2)
SQL Server (1)
Security (3)
Software (1)
Software Engineering (1)
Software development (2)
Solr (1)
Sql Server (2)
Storage (1)
T-SQL (1)
TDD (1)
TSQL (5)
Tablet (1)
Technology (1)
Test Driven (1)
Testing (1)
Tomcat (1)
Unit Testing (1)
Unit Tests (1)
Utilities (3)
VC++ (1)
VMWare (1)
VSCode (1)
Visual Studio (2)
Wallpapers (1)
Web API (2)
Win32 (1)
Windows (9)
XML (2)

Posts By Tags

.NET(6) API Gateway(1) ASP.NET(4) AWS(3) Adults(1) Advertising(1) Android(1) Anti-forgery(1) Asynch(1) Authentication(2) Azure(2) Backup(1) Beliefs(1) BlockingQueue(1) Book review(2) Books(1) Busy(1) C#(4) C++(3) CLR(1) CORS(1) CSRF(1) CTE(1) Callbacks(1) Camel(1) Certificates(1) Checkbox(1) Client authentication(1) CloudHSM(1) Cmdlet(1) Company culture(1) Complexity(1) Consumer(1) Consumerism(1) Containers(3) Core(2) Custom(2) DPI(1) Data-time(1) Database(4) Debugging(1) Delegates(1) Developer(2) Dockers(2) DotNetCore(3) EF 1.0(1) Earphones(1) Elastic Search(2) ElasticSearch(1) Encrypted(1) Entity framework(1) Events(1) File copy(1) File history(1) Font(1) Git(2) HierarchyID(1) Hyper-V(1) IIS(1) Installing(1) Intelli J(1) JDBC(1) JSON(1) JUnit(1) JWT(1) Java(3) JavaScript(1) Kubernetes(1) Life(1) LinkedIn(1) Linux(2) Localization(1) Log4J(1) Log4J2(1) Logging(1) Lucene(1) MVC(4) Management(2) Migration history(1) Mirror(1) Mobile Apps(1) Modern Life(1) Money(1) Music(1) NGINX(1) NTFS(1) NUnit(2) OData(1) OPENXML(1) Objects(1) Office(1) OpenCover(1) Organization(1) PHP(1) Paths(1) PowerShell(2) Processes(1) Producer(1) Programming(2) Python(2) QAAC(1) Quality(1) REDIS(2) REST(1) Runtimes(1) S3-Select(1) SD card(1) SLF4J(1) SQL(2) SQL Code-first Migration(1) SSH(2) SSL(1) Sattelite assemblies(1) School(1) Secrets Manager(1) Self reliance(1) Service(1) Shell(1) Solr(1) Sony VAIO(1) Spirituality(1) Spring(1) Sql Express(1) System Image(1) TDD(1) TSQL(3) Table variables(1) Tables(1) Tablet(1) Ubuntu(1) Url rewrite(1) VMWare(1) VSCode(1) Validation(2) VeraCode(1) Wallpaper(1) Wallpapers(1) Web Development(4) Windows(2) Windows 10(2) Windows 2016(2) Windows 8.1(1) Work culture(1) XML(1) Yii(1) iTunes(1) open file handles(1) renew(1) security(1) static ip address(1) ulimit(1)