create account

Which Programs Should I Learn? by yintercept

View this thread on: hive.blogpeakd.comecency.com
· @yintercept ·
$2.79
Which Programs Should I Learn?
![googly.jpg](https://files.peakd.com/file/peakd-hive/yintercept/AJhYLp1uFPCpMh68s4k1c4chQBmjvVrDLCia1xvGVtbqK4hBeSESsD4aWc1ABE2.jpg)

## Lets Learn to Code

The [Learn2Code Tribe](https://peakd.com/c/hive-188262/created) invites people to discuss and learn computer coding skills. The name of the tribe begs the question: What languages should I learn?

This question is problematic as programming preferences change with time. 

It is not uncommon for industry to develop a language to solve a particular problem. Once the problem is solved, programmers want to move onto the next big languages.

One should expect languages to change with time. 

The cutting edge technology of one generation will be considered legacy code by the next.

That said, there are a few programming languages and file formats that are likely to persist through the ages. So, it is smart to start with these languages.

I believe that the first languages that new programmers should learn are: HTML and SQL. 

## HyperText Markup Language

HyperText Markup Language (HTML) is a standardized format for the Internet. Coders need to master HTML so that they can communicate online.

People use a device called a web browser to view HTML pages. I suspect that most of the people reading this page are using a web browser.

Some browsers allow users to right-click on the page and view the source code for the page. 

One of the best ways to learn HTML is to examine the HTML created by others.

If you view the source for different web sites; you are likely to find that most programmers write really sloppy HTML.

Why is this?

HTML is simply a document format. I suspect that most users of this forum have a basic knowledge of HTML; so I will jump to SQL.

## Structured Query Language

As the name implies "Structured Query Language" (SQL) was designed for executing queries on a properly a structured database called a Relational Database. 

Just as you need a web browser to view HTML pages. One needs a specialized program to explore Relational Databases. This tool is called a Relational Database Management System or RBMS.

Popular RMBS include Oracle, Postgres, MySQL (or MariaDB) and Access.

There are hundreds of such programs.

I will use a RDMS called [SQLite](https://www.sqlite.org/). SQLite3 is a free lightweight database designed to be embedded in programs.

Dwayne Richard Hipp (1961 - present) created SQLite in 2000 while working at _General Dynamics_ for a contract with the _US Navy_. 

The project was using the _IBM Informix_ Database. Like most RDMS, the database was top heavy, resource intensive and expensive.

Hipp created a simple C library that programmers could call to create and maintain tables in a lightweight relational database structure.

The project slowly began adding features such as international support. They also created a lightweight command line interface.

I use the command line interface to create tables and then write programs to access the tables that I created.

Hipp designed SQLite with Postel's Rule in mind. Postel's rule states: "be conservative in what you do, be liberal in what you accept from others"

Jonathan Postel (1943–1998) is an internet pioneer who helped develop the ARPANET protocols that created the TCP/IP stack (ahem, the Internet). He later helped maintain the Request for Comments (RFC) system that helped define Internet protocols. Lets see, Postel helped design the _Simple Mail Transfer Protocol_ (SMTP) and helped establish the _Internet Assigned Numbers Authority_ (IANA)

Postel was a primary editor of the _Request for Comment_ (RFC) which helped set Internet standars and worked on the _Domain Name System_ (DNS) in 1988.

Following Poste's Rule, SQLite allows for dynamic typing and is not tripped up on all of the constraints and triggers used by most RDMS.

I like this approach. Since I control the data I collect, I can create my own constraints. I don't need a triggered database to do it for me.

## Limitations of SQLite

There are a few limitations to SQLite. Notably SQLite has a limit on its database size of 281 terabytes.

If you want to store more than 281 Terabytes; you will need to split up your database into separate tables. 

I've used SQLite database with over a hundred million rows. The database is still quite fast; However, full table scans are slow. Importing and exporting that many rows is also slow.

A full database scan on any database will be slow.

## SQLite and Decentralization

People in the Hive-O-Sphere claim to support decentralization. 

The [When To Use](https://www.sqlite.org/whentouse.html) page by SQLite says the following:

>  Client/server SQL database engines strive to implement a shared repository of enterprise data. They emphasize scalability, concurrency, centralization, and control. SQLite strives to provide local data storage for individual applications and devices. SQLite emphasizes economy, efficiency, reliability, independence, and simplicity. 

Traditional RDBMS seek to centralize control over date. SQLite emphasizes efficiency and independence.

The article further states that SQLite does not intend to compete in the traditional database space. SQLite sees __fopen()__ as its primary competitor.

__fopen()__ is a C fuction that opens a file. I had such a horrible time with the PDO Object[^1] in PHP, that I considered dumping the database world altogether and just using raw files instead. JSON and XML do just this.

I lost the data in raw DOS files back in the 1990s and have been scared of such files ever since. The data loss may have been caused by a bad sector on the disk, or maybe a cosmic particle hitting my computer at the wrong time.

[^1] The problem I had with PDO was that a query returned the wrong data. The problem had something to do with the way that the PDO object extended the Countable Object. Bizarre stuff. I was not able to debug the problem.

## SQLite For Long Term Data Storage

I have yet to lose data in a SQL database. The databases are lightweight and easy to back up.

Interestingly, the [The Library of Congress](https://www.loc.gov/preservation/digital/formats/fdd/fdd000461.shtml) suggests SQLite tables as a viable solution for long term data storage.

## Which Programming Language Should I Use

So, my first recommendations for new coders is to intall a Web Browser and SQLite3 on their local machine.

This is a great start; However these two programs are disjoint. One needs some sort of web server to connect the two programs.

So, I need a third programming languages. 

There are hundreds of languages that can accomplish this task. I can do it with C, PHP, Java Servlets, Node.js, Python, C++, Go, Rust of Zig.

The process of choosing the right language is driving me to distraction.

I've spent the last couple of weeks testing different languages. Each language has its plusses and minuses.

I've strongly considered using C. C was built for computers with eight bit processors. 64 bit processors are common. The language uses an 8 bit character set. As C was created before the advent of Unicode, it has limited UTF8 support. 

Many pundits believe that C might be at the end of its useful life cycle.

Rust and Zig are exciting new programs. 

Both languages have arcane syntax. Rust was built on the idea that one can limit memory faults by placing constraints on the programmer.

While I see merit in the programs, I don't like the direction that they are headed.

I am still in the process of deciding the programs that I want to use. 

To make matters worse, while I was testing Zig on my development server. I accidentally wiped out one of my domains. I forgot that it was still sitting on my development server.

## Conclusion

I believe that people who learn HTML, SQL and a yet to be determined third language will be set to conquer the world. 

## Image Credits

I created [the image for this post](https://creator.nightcafe.studio/creation/q4PFiwyW68YLZsPMUACQ?ru=yintercept) with NightCafe.
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 217 others
properties (23)
authoryintercept
permlinkwhich-programs-should-i-learn
categoryhive-188262
json_metadata"{"app":"peakd/2024.5.1","format":"markdown","description":"I discuss programs that people need to learn in 2024. I think that people should start with HTML and SQL.","tags":["byte","stem","technology","sql","programming","pob","vyb"],"users":[],"image":["https://files.peakd.com/file/peakd-hive/yintercept/AJhYLp1uFPCpMh68s4k1c4chQBmjvVrDLCia1xvGVtbqK4hBeSESsD4aWc1ABE2.jpg"]}"
created2024-05-14 21:33:45
last_update2024-05-14 21:33:45
depth0
children6
last_payout2024-05-21 21:33:45
cashout_time1969-12-31 23:59:59
total_payout_value1.414 HBD
curator_payout_value1.374 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length7,993
author_reputation27,823,644,541,935
root_title"Which Programs Should I Learn?"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id133,660,886
net_rshares6,614,634,263,031
author_curate_reward""
vote details (281)
@arc7icwolf ·
$0.03
>I believe that people who learn HTML, SQL and a yet to be determined third language will be set to conquer the world.

I like this conclusion ahahah I'm just scratching the surface with Python, but next my plan is to focus on HTML and SQL... happy to see that my plan has some merits!

Curated by @arc7icwolf.byte for the #LearnToCode community.
👍  
properties (23)
authorarc7icwolf
permlinkre-yintercept-2024516t225345563z
categoryhive-188262
json_metadata{"tags":["byte","stem","technology","sql","programming","pob","vyb"],"app":"ecency/3.2.0-vision","format":"markdown+html"}
created2024-05-16 20:53:48
last_update2024-05-16 20:53:48
depth1
children0
last_payout2024-05-23 20:53:48
cashout_time1969-12-31 23:59:59
total_payout_value0.016 HBD
curator_payout_value0.017 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length346
author_reputation509,912,338,328,406
root_title"Which Programs Should I Learn?"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id133,716,837
net_rshares80,347,074,173
author_curate_reward""
vote details (1)
@chrisaiki ·
$0.03
Whatever program language  you choose, today, you can ask an AI to translate your program in another language. Several AI are also able to translate natural language in program language like https://partyrock.aws/
👍  , ,
properties (23)
authorchrisaiki
permlinksdl7i6
categoryhive-188262
json_metadata{"links":["https://partyrock.aws/"],"app":"hiveblog/0.1"}
created2024-05-16 16:37:18
last_update2024-05-16 16:37:18
depth1
children0
last_payout2024-05-23 16:37:18
cashout_time1969-12-31 23:59:59
total_payout_value0.016 HBD
curator_payout_value0.017 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length213
author_reputation56,815,914,504,517
root_title"Which Programs Should I Learn?"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id133,707,414
net_rshares81,570,002,264
author_curate_reward""
vote details (3)
@kenny-crane ·
A long time ago, I made websites with Microsoft Visual Basic using Microsoft Access MDB files for the database, all on a cheap GoDaddy shared server.  It actually worked very well.

Then I used Visual C# and MSSQL still on GoDaddy.

Now I use HTML, CSS and javascript on the client side, and PHP with MySQL database server side, still on GoDaddy.  I use jQuery because I know it very well but these days it's almost as easy to use plain vanilla javascript.  I use Bootstrap for a HTML/CSS/js framework.

I know most people use newer stuff but I'm fine with what I use and it works for me.  

Best wishes in all your programming adventures!
properties (22)
authorkenny-crane
permlinkre-yintercept-sdsumm
categoryhive-188262
json_metadata{"tags":["hive-188262"],"app":"peakd/2024.5.2"}
created2024-05-20 19:39:57
last_update2024-05-20 19:39:57
depth1
children0
last_payout2024-05-27 19:39:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length639
author_reputation236,205,411,401,948
root_title"Which Programs Should I Learn?"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id133,806,985
net_rshares0
@memess.byte ·
$0.03
Curated by me, such a lot of programing language i wont learn even though i want
👍  , , ,
properties (23)
authormemess.byte
permlinksdihjs
categoryhive-188262
json_metadata{"tags":["vyb"],"app":"verifyyourbrain/0.1","canonical_url":"https://www.vybrainium.com/@memess.byte/sdihjs"}
created2024-05-15 05:21:30
last_update2024-05-15 05:21:30
depth1
children0
last_payout2024-05-22 05:21:30
cashout_time1969-12-31 23:59:59
total_payout_value0.016 HBD
curator_payout_value0.016 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length80
author_reputation8,033,639,041
root_title"Which Programs Should I Learn?"
beneficiaries
0.
accounthiveonboard
weight100
1.
accountmemess
weight300
2.
accountocdb
weight100
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id133,666,746
net_rshares81,047,030,386
author_curate_reward""
vote details (4)
@pept-learn ·
Very informative.
Thank You
!LOLZ
properties (22)
authorpept-learn
permlinkre-yintercept-sdtfnl
categoryhive-188262
json_metadata{"tags":["hive-188262"],"app":"peakd/2024.5.2"}
created2024-05-21 03:14:09
last_update2024-05-21 03:14:09
depth1
children0
last_payout2024-05-28 03:14:09
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length33
author_reputation182,515,745,597
root_title"Which Programs Should I Learn?"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id133,815,018
net_rshares0
@stemsocial ·
re-yintercept-which-programs-should-i-learn-20240515t030740572z
<div class='text-justify'> <div class='pull-left'>
 <img src='https://stem.openhive.network/images/stemsocialsupport7.png'> </div>

Thanks for your contribution to the <a href='/trending/hive-196387'>STEMsocial community</a>. Feel free to join us on <a href='https://discord.gg/9c7pKVD'>discord</a> to get to know the rest of us!

Please consider delegating to the @stemsocial account (85% of the curation rewards are returned).

You may also include @stemsocial as a beneficiary of the rewards of this post to get a stronger support.&nbsp;<br />&nbsp;<br />
</div>
👍  
properties (23)
authorstemsocial
permlinkre-yintercept-which-programs-should-i-learn-20240515t030740572z
categoryhive-188262
json_metadata{"app":"STEMsocial"}
created2024-05-15 03:07:39
last_update2024-05-15 03:07:39
depth1
children0
last_payout2024-05-22 03:07:39
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length565
author_reputation22,927,741,259,786
root_title"Which Programs Should I Learn?"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id133,665,034
net_rshares0
author_curate_reward""
vote details (1)