Edit page OneLaptopPerChild
[wiki.git] / ProgrammingLanguages
1 I like learning new programming languages, but I'm always
2 afraid to try exotic ones in real projects, expecially
3 because most customers are already scared off enough when
4 they see Perl code :-)
5
6 === General-purpose ===
7
8  * '''C++''' - I know the ISO/IEC C++ 98 standard extensively, including
9  most of the recent TR1 additions.  I also know several C++
10  ProgrammingFrameworks.
11
12  * '''C''' - I consider C a different language from C++ because you
13  end up using a different programming style and ProgrammingFrameworks.
14  ISO C89 (and later C99) is the probably the language I've been using
15  most often, mostly because I did lots of low-level programming in my
16  EmbeddedEngineerRole and because C is still the prominent language
17  in open source projects (see OpenSourceDeveloperRole).
18
19  * '''Assembly''' - I know assembly from several processors, but I
20  can say I'm proficient only with the following:
21    
22   * Motorola/Freescale 680x0/Coldfire
23   * Texas Instrument's DSPs (mostly TMS320C5xx)
24   * The old Zilog Z80
25  
26  I've also used several MicroController's, in the sense that I know
27  the architecture and integrated peripherals.
28
29  * '''Java''' - I've been involved in a large Java web application
30  (visible here: http://www.fieremostre.it/ ), but mainly as a Tomcat
31  administrator and maintainer of the build and deployment system.
32  The only development work I did is in user authentication, security
33  and database access.  I've also done profiling, optimization and
34  performance tuning work for a POS application based on IBM's JPOS.
35  I know the Java language and much of JFC, but I'm not really into
36  Java any more.
37
38 Others you don't know or care about: Pascal, Visual''''''Basic.
39
40
41 === Dynamic/Agile ===
42
43  * '''Perl''' - I'm quite proficient in Perl, but use it mostly
44  for one-liners and small utilities for my SystemAdministratorRole.
45  These tools are a good example of my Perl coding skills:
46
47   http://www.codewiz.org/projects/#loginfo
48
49   http://www.codewiz.org/projects/#newrpms
50
51  I've also done deep Bugzilla customizations for a customer,
52  which enables me to say that I've also used Perl in a real
53  application too.
54
55  * '''PHP''': I've teached PHP in a course done as part of
56  my InstructorRole.  I've also wrote an
57  online shop application in PHP back when PHP4 was not
58  yet mainstream and you had to build it yourself.
59  As part of my ManagementRole, I've also supervised two
60  additional PHP projects developed at DevelerCompany. 
61
62  * '''Python''': I know Python just a little.  See my
63  PikiPlus changes for an example of my limited Python skills.
64
65  * '''Javascript'''/'''ECMAscript''': Only superficial knowledge.
66
67 === Scripting Languages ===
68
69  * '''Bourne Shell''': I've used bash as my main shell
70  for a very long time and I've used it extensively for
71  automation (see SystemAdministratorRole) and as part
72  of using make and autoconf.
73
74 === Query languageas ===
75
76  * '''SQL''': I've used it extensively and taught to students the
77  basics.  The Database I know best is MySql, but I also have some
78  experience with MicrosoftAccess, SqlServer, OracleDatabase, PostgreSql
79  and others.
80
81 === Not Properly Languages ====
82
83  * '''regex''': Extended and Perl-compatible regular expressions.
84
85  * '''HTML''': Extensive knowledge of the W3C standards (HTML 4.01
86  and XHTML 1.1).
87
88  * '''CSS''': Incomplete knowledge of the W3C standard (CSS1 & CSS2).
89
90  * '''LaTeX''': Only superficial knowledge (I cannot create macros, etc.)
91
92  * '''make''': I can do wizardry with GNU Make macros, etc.
93
94
95 === Useless Languages ====
96
97  * '''awk'''
98  * '''sed'''
99  * '''REXX'''