Email: | flaga.jeremiah@gmail.com |
Skype: | jboyflaga |
Mobile: | +63918-374-5134 |
Facebook
Messenger: |
@jayflaga |
I’m an Initiate; perhaps a beginning Codesmith
My learning philosophy today on software development
.NET: |
C#, VB.NET, LINQ WinForms, WPF, ASP.NET Web Forms, ASP.NET MVC, ASP.NET Web API, Entity Framework, Moq, etc. |
Web: |
HTML, Bootstrap, JavaScript KnockoutJS, jQuery |
Android: |
Java, RxJava |
Databases: |
SQL ORM: Entity Framework in .NET, Sugar ORM in Android |
Unit Testing: |
xUnit, Moq, JUnit, Mockito |
Source Control: |
Git, SVN |
Basic Computer Science Concepts: |
Learned CS through free materials of Stanford's CS106B last 2012, through "Nand to Tetris (Part 1)" course last 2015, and through MIT OpenCourseWare 6.0001 this 2017 ... also through "Computer Science Distilled" of Wladston Filho |
Software Architecture or Design: |
The SOLID principles Clean Architecture model of Uncle Bob Martin Also have knowledge on some design patterns such as Decorator, Strategy, Factory, Command Also, a little knowledge on some DDD concepts |
Software Development Practices: |
Believes in Agile Software Development practices such as collective ownership of the code base, code review (even pair programming or mob programming), discarding practices that does not work in a particular team and retaining those that work, and others you might want me to believe in that works in software development
Believes that TDD can greatly help us make software that is maintainable. (Of course that does not mean that I'm going to force it on others. |
Other: |
Googling Stackoverflow I know a little bit of Python.
I also like solving algorithmic problems, but am able to solve only the simple ones, at least for now... An avid fan of Uncle Bob Martin (I visit his blog often). (Please click here if you want a peek into how I currently think) |
I had read "How to Win Friends and Influence People" in the past (year 2007 or 2008, I think), and I am rereading it sometimes to review the things I learned from it..
|
|
GitHub: |
Old GitHub:
|
Blog: |
Old Blogs:
|
Software Developer for web using .NET (and Sitecore) at Jairosolutions
I experienced being in a team creating web pages using the Sitecore CMS and ASP.NET.
|
|
Contributions: Nothing extraordinary. Just finished the tasks assigned to me. Lesson(s) Learned:
This is where I was first exposed to DDD. Our employer made us study DDD because we will be using it in an in-house project. But I was not lucky to be involved in the in-house project because the employement of three junior developers, which inlcuded me, stopped after six months due to a problem unbeknownst to me.
|
Software Developer for web using .NET at Mynd Consulting
I was part of a team that works for a client named Common Census. We were developing and maintaining a web application that is used in enrollment for insurance.
|
|
Contributions: Nothing extraordinary. Just did the tasks assigned to me. Lesson(s) Learned:
|
Software Developer for mobile using Android at Mynd Consulting Involved in developing versions 2 and 3 of the Dr. Oz app for Android devices. (Version 3 is not yet uploaded to the Play Store as of May 2018.) |
|
Contributions:
Nothing extraordinary. Just did the tasks assigned to me.
Lesson(s) Learned:
|
Using Terence McGhee’s “Software Ninja Class Hierarchy”, today, I consider myself to be an Initiate, because I try to write code that is easy to read. I do that because I know that programmers spend more time reading code than writing code.
I’m not saying that I always write code that is easy to read. I still write messy code during trying times or during boring times or lazy times, with the intention of cleaning them up later of course . But I’m already aware, through experience, that code that is easy to read is valuable code. I also understand that later means never so if your organization insist that I should never write messy code, I will be happy to comply.
Also, I heard some people say that programmers sometimes sell themselves short. In relation to that, you might still forgive me if I consider myself a Level “Zero” Codesmith because I have little knowledge about TDD, the SOLID principles, Clean Architecture, and some Design Patterns. (Please note that in programming, “zero” could mean “initial” )
When I started coding, my focus on learning was trying to master the specifics of a programming language.
Then a few years later, my focus moved into trying to master specific frameworks and libraries.
But then I heard Uncle Bob Martin saying that software development has not changed in the last 40 years. And I heard Mattias Petter Johansson’s advise for programmers:
“… learn the stuff that doesn’t change around a lot. Learn the fundamentals that we figured out in the 70s and that have been true since. Learn programming in general. Don’t be a better Angular programmer, or even a better JavaScript programmer — just be a better programmer, period.”
So today, my focus moved into learning the basic principles of software design and methodologies, because these are the things that do not change a lot, and these things will help me make software that is maintainable, which many master programmers say is the primary value of software.
Today, my learning philosophy is like this:
Just-in-time learning about specific languages and frameworks and libraries
Ahead-of-time learning about basic principles and practices in software development, and about programming in general
I hope that kind of learning philosophy is okay with you.
When I am already hired in your company, I will spend the first few weeks concentrating on learning about the structure/architecture of the project I will be involved in, learning about the coding standards being used by the team, learning about the specific frameworks and libraries and languages that are being used in the project (if I am not yet familiar with them), and most importantly learning about the domain of the business that the software is being built for, even to the point of learning why the software was built.
When I reach the point where am already comfortable with my knowledge on the specific frameworks and libraries being used in the project, I will move my concentration again into learning about programming in general.
Thank you for your time!