Web Computer Language experiences

HTML & CSS skills

I have been professionally programming since 1977, started coding websites in 1998 when I realized that websites would become the most important place for communication in the future. I commuted to Manhattan for a year and a half doing HTML and CSS for Design Firms using the then 'new' table-less layout techniques and IE6 hacks for a consistent browser experience. I wrote high quality code, and had the benefit of writing HTML with the understanding how it is used by the backend server. I am now loving the power and functionality of SASS, HTML5, and CSS3 features that have enhanced and simplified Web Development. FYI, this website is written with simple HTML and CSS, which can be viewed by viewing the page source.

JavaScript

I have been coding Javascript since 1998. I originally used pure JavaScript to manipulate the DOM in Internet Explorer and Netscape. I later used the Prototype and Scriptaculous libraries to have better cross browser code. I got on the AJAX bandwagon when it first came out. I have spent some time on the Javascript front end frameworks such as React and Ember, as well as Elm

I have a love hate relationship with JavaScript. Originally it provided a hodgepodge of state of the art (at that time) tools to web pages. Javascript has significantly lacked convention, but there have been improvements in this and enhancements such as typescript. Recent enhancements to Javascript, including server-side Javascript with Node, and more use of its functional features have helped it improve as a language.

Ruby on Rails

I have been coding with Ruby on Rails since 2006. I found that I could develop websites three times faster than using Java J2EE tools, and at the same time have automated testing of the product.

I found that Ruby on Rails has made a significant contribution to web development, especially with its convention over configuration, and a rich set of tools available. I find the Ruby language orientation of being english-like has made it hard for the documentation to be clear about what types of arguments are being passed, and thus harder to read and understand.

Future Language Explorations

I have started playing with Rust. I love how this language uses convention over configuration, and has a top notch infrastructure. I was hoping that this language could becomea good general purpose language, but I am finding the language much too complex for that, and seems that it will be relegated for programming closer to the metal, such as for micro-controllers, O/S, and other lower level infrastructure projects. I expect that it will eventually supplant C and C++.

I am curious about the kotlin language, as its goal is to be the better java. I loved working in Java decades ago (as is was well documented and open), but found coding required much too much verbiage. I eventually switched over to Ruby on Rails, because I could code three times faster, and have automated testing to boot.

I have been developing a web site in Ruby on Rails, then writing is again in other languages, to compare the tool sets. I will be curious how easily the web sites will work with mobile devices.

I understand that there is a trend in programming to use 'AI' tools to help develop code. I am afraid that depending upon suggestions from a tool developed from pattern 'matches' will tend to degenerate programming away from the design and programming requirements. I am especially concerned that users will start to defer to 'AI' tools, instead of using them for assistance, and thereby no longer understand what they are doing.

Other Skills

Database design and SQL coding.

I have been designing and Developing SQL and relational databases since 1996. I have used a wide variety of databases (MySQL, PostgreSQL, MS SQL Server, Oracle, and others), and have written a lot of SQL (Structured Query Language), designed databases with a good balance between normalizing and denormalizing the tables, and have converted databases to new structures, ensuring the data is properly prepared for the conversion (scrubbing data).

Gathering requirements from users.

Though I am not a Business Analyst, as a consultant, I have regularly developed a good general understanding of business needs (I have an MBA). I have a lot of experience working with clients to ensure their website is excellent and meets their needs. I find that SCRUM is a valuable technique for maintaining communication and understanding between the technical and non-technical people on a team.

Usability eXperience (UX)

Though I am not a UX Designer, I have have worked with them in the past, and consider UX a part of requirements gathering. I was once asked to present a topic to Rails Girl Philly a few years ago, and chose UX, because it is an important aspect of web development. Please see the outline of my presentation on my Planning and Implementing Websites Process

Developing automated tests

After starting to use tests in 2006 for a Ruby on Rails project, I have come to value the importance of coding in parallel with the tests. When all coding is done in relation to tests, the tests are improved, and there is assurances that the code meets the requirements of the tests. The better the tests, and the more the code is 'covered' by tests, the safer it is to make changes to software without unforseen problems.