First  Prev  1  2  Next  Last
Post Reply What type of programmer are you?
5615 cr points
Send Message: Send PM GB Post
31 / M
Offline
Posted 5/28/17 , edited 5/28/17
https://hackernoon.com/the-9-types-of-programmers-and-why-some-are-better-than-others-2015b0feea2e

The type shows a different variety of programmers. I am more on the "Proof that a degree doesn't mean anything". I graduated with a computer engineering degree and is currently working as a programmer in Taiwan. The idea that the degree does not mean anything is because my work requires me to write things from asp.net to Oracle database. I've never learned SQL back in school, same goes for asp.net. When I first got into work I don't even know what a gridview is.

With that said, my Chinese coworker is like the young genius. He knows his architecture and his code is bug proofed. What do I mean by bug proofed? It means the datetime conversion and null dates that I have no idea how to deal with he would have a solution and runs without bugs. He would be able to utilize NPOI to export excel documents. This usually requires me to do hours of online searching to find the best example and attempt to export the excel documents with the same code. I usually learn through example, but if you want me to read the manual of a function it would give me a headache. Some people say I am lazy this way, I think this is just how I learn. For example, if you read the manual of how substring works substring (start index, length), I probably would not know what it is, but if you show me the example,
// The example displays the following output:
// aaaaabbbcccccccdd.Substring(5, 3) = bbb
I'd have an easier way figuring the function out.

So what exactly do I do for my work? I copy over the gridview, windows, my Chinese coworkers wrote for aspx and attempt to reconstruct a similar program with different SQL(I am using their SQL as an example too). As for how they coded out the first thing from scratch? Well they are in China so I really wasn't around them to tell(I am in Taiwan).

I always thought America would have the best way of handling everything, null dates, NPOI export, all have a set function to export it in one line. But from what I see with the Chinese coders, their code seem ruthless, but stable. It could take them 100 lines building headers and cell style for Excel export without using a package, but they always get what they want in terms of output. Are they my idea of the manual reader(substring(start index, length)? I dunno.

When I asked the Chinese programmer which university they've graduated from(I figured it'd be from the best), they told me all these programming knowledge is self taught .

This is why their work impresses me, 100 lines for setting headers and cell style for Excel? I'd just copy and paste it over. I am usually given a few days to complete the task, forgive me on this part = =.

If you think a gridview is trouble, think again, these Chinese programmers code and change the html of the gridview in databound to invoke events, example (e.values[f] = <on click=function()>).

Long story short, reading the Chinese codes is like reading the Chinese empire. Let me know what you think.
Posted 5/29/17

fredreload wrote:
The type shows a different variety of programmers. I am more on the "Proof that a degree doesn't mean anything". I graduated with a computer engineering degree and is currently working as a programmer in Taiwan. The idea that the degree does not mean anything is because my work requires me to write things from asp.net to Oracle database. I've never learned SQL back in school, same goes for asp.net. When I first got into work I don't even know what a gridview is.


I would be a "young genius" (despite not being so young). I was self-taught and got degrees to reflect what I already knew (college/university only taught C++, C#, Java, and some Javascript). I frequently code in the following languages:

- Java (tons of servlet and JavaServer pages)
- Javascript (AngularJS, React, Ember, jQuery, Backbone... )
- Python (Django, Flask, Plone)
- C++ (Platinum (Pt).. mostly for the company's client-side application)
- PHP (Yii 2 for caching, mostly)
- Rails (used for internal webdev and integrations)
- HTML/CSS (this should have been a given)
- Swift (working on a mobile client for our software)
- ASM/Assembly (use this in combination with .py for robotics hobby)
- RAPID/KRL/INFORM/URScript (various proprietary languages for robotics - pain in the ass when I'm using someone else's hardware to follow their own languages)
- MATLAB (for both robotics and mathematics)
- SQL (if you consider this a "language" of sorts, most do - but this various SQL databases are used in both hobbies and professional environments)

I know more languages and continue to improve either by learning new languages or updating my knowledge of the ones I already know. I knew C++ and ASM before I was 10 years old. I was forced (sic) to learn Visual Basics in high school due to data processing (a course I took). I've made things from powerful IRC clients to my own assembler (based loosely on NASM) throughout the years.

Professionally, I don't rely on anyone else to keep me up to speed. I'm in charge of the team and know the quirks of each member of it. I know their strengths, weaknesses, and know how to utilize them efficiently.

As a hobbyist, I'm found tinkering with robotics, mathematics (since I'm a math geek), or working with Alexa/Google Home with IoT stuff. I've been working to integrate my server monitoring software with both of these systems so that I'm alerted verbally when something is down, giving off warnings (for CPU/RAM usage), and things like that. Mostly because we have a Google Home in the office that would definitely be heard by the devops team if it started to sprout off errors/warnings.

But as for the "self-taught" aspect of things - that's pretty much fine and dandy but you end up not learning how to optimize code for a professional environment. The examples you've given are similar to the issues I've encountered with self-taught coders who haven't done anything professionally. You don't need a college education to be a programmer - but you definitely would either need a degree or years of professional experience for most team leads (including myself) to hire you. This is ultimately because of the sloppy, unoptimized code that you're talking about. It works, sure. But something they've done in 100 lines can be done in 30-40 by those with more professional experience.
3496 cr points
Send Message: Send PM GB Post
21 / F / Seoul, South Korea
Offline
Posted 5/29/17
The type that finds "normal" programmer work too boring, and ends up working as a auditor because working on generic projects that don't test my skills are boring.
84 cr points
Send Message: Send PM GB Post
26 / M
Offline
Posted 5/29/17


I'm the kind who learned juuuust enough to code quantum wells and such in computational physics.
5615 cr points
Send Message: Send PM GB Post
31 / M
Offline
Posted 5/29/17 , edited 5/29/17

ninjitsuko wrote:


fredreload wrote:
The type shows a different variety of programmers. I am more on the "Proof that a degree doesn't mean anything". I graduated with a computer engineering degree and is currently working as a programmer in Taiwan. The idea that the degree does not mean anything is because my work requires me to write things from asp.net to Oracle database. I've never learned SQL back in school, same goes for asp.net. When I first got into work I don't even know what a gridview is.


I would be a "young genius" (despite not being so young). I was self-taught and got degrees to reflect what I already knew (college/university only taught C++, C#, Java, and some Javascript). I frequently code in the following languages:

- Java (tons of servlet and JavaServer pages)
- Javascript (AngularJS, React, Ember, jQuery, Backbone... )
- Python (Django, Flask, Plone)
- C++ (Platinum (Pt).. mostly for the company's client-side application)
- PHP (Yii 2 for caching, mostly)
- Rails (used for internal webdev and integrations)
- HTML/CSS (this should have been a given)
- Swift (working on a mobile client for our software)
- ASM/Assembly (use this in combination with .py for robotics hobby)
- RAPID/KRL/INFORM/URScript (various proprietary languages for robotics - pain in the ass when I'm using someone else's hardware to follow their own languages)
- MATLAB (for both robotics and mathematics)
- SQL (if you consider this a "language" of sorts, most do - but this various SQL databases are used in both hobbies and professional environments)

I know more languages and continue to improve either by learning new languages or updating my knowledge of the ones I already know. I knew C++ and ASM before I was 10 years old. I was forced (sic) to learn Visual Basics in high school due to data processing (a course I took). I've made things from powerful IRC clients to my own assembler (based loosely on NASM) throughout the years.

Professionally, I don't rely on anyone else to keep me up to speed. I'm in charge of the team and know the quirks of each member of it. I know their strengths, weaknesses, and know how to utilize them efficiently.

As a hobbyist, I'm found tinkering with robotics, mathematics (since I'm a math geek), or working with Alexa/Google Home with IoT stuff. I've been working to integrate my server monitoring software with both of these systems so that I'm alerted verbally when something is down, giving off warnings (for CPU/RAM usage), and things like that. Mostly because we have a Google Home in the office that would definitely be heard by the devops team if it started to sprout off errors/warnings.

But as for the "self-taught" aspect of things - that's pretty much fine and dandy but you end up not learning how to optimize code for a professional environment. The examples you've given are similar to the issues I've encountered with self-taught coders who haven't done anything professionally. You don't need a college education to be a programmer - but you definitely would either need a degree or years of professional experience for most team leads (including myself) to hire you. This is ultimately because of the sloppy, unoptimized code that you're talking about. It works, sure. But something they've done in 100 lines can be done in 30-40 by those with more professional experience.


Having to look through their code really gets me to learn a variety of coding styles :P, if you can read a messy code, reading professional code should be relatively easy. That but I still got years of programming experience ahead of me, so don't take my comment too badly . My hobby is on the Open Worm project and the search to generate a digital consciousness. I've taken an interest in 3D and gaming side, as well as immortality. So I believe one day a digital consciousness could be generated


feynmanszombie wrote:



I'm the kind who learned juuuust enough to code quantum wells and such in computational physics.


Let me know if you got a working black hole
Posted 5/29/17

fredreload wrote:

Having to look through their code really gets me to learn a variety of coding styles :P, if you can read a messy code, reading professional code should be relatively easy. That but I still got years of programming experience ahead of me, so don't take my comment too badly . My hobby is on the Open Worm project and the search to generate a digital consciousness. I've taken an interest in 3D and gaming side, as well as immortality. So I believe one day a digital consciousness could be generated


Bolded Part:
I will say that my years of reading horrible, messy coding has made it easier to read. The reason why it's not accepted too often into the professional realm is that it's not scalable. One person's messy code can end up being a hack/workaround that proper code could fix permanently. On top of that, when you're debugging 2,000,000+ lines of code for one application (or "suite" of applications) .. uniform and professional code make for a significantly easier time debugging than when 1-2 developers are messy and unprofessional.

The issue that I've had at the current company I'm at is that it was originally created by a bunch of programmers that were contracted outside of India and China due to trying to implement an "idea". 11 years later, I go to upgrade and change things... absolutely none of the code is usable. I had to single-handedly create a new UI, backend, and server platform because they simply did a hack-job with the code. It's the main reason why you show your portfolio off when applying for a software engineer position: if you can show off how professional, clean, and optimized your coding is - your college degree will only be icing on the cake (or not required at all, depending on the size of the company).


Magical-Soul wrote:

The type that finds "normal" programmer work too boring, and ends up working as an auditor because working on generic projects that don't test my skills are boring.


This was pretty much my issue for a while too. I've flipped and flopped around trying to find a company that would let me have some self-control as to where we were going. Startups are usually the best place as they're always looking for innovation that can put them ahead of the competitors. I did everything but programming for ages, except for freelancing and personal projects. Now I'm pretty much free to do as I please as long as it improves the customer experience and makes the code uniformed so that we can sell it all off one day.
13599 cr points
Send Message: Send PM GB Post
25 / M / Scotland
Offline
Posted 5/29/17
I'm probably a ninja. I'm in my 3rd year of university (I've failed 2 modules so I'll have to resit them) so I'm not quite proof that a degree means nothing yet. However, I am crap at programming. What seems to take others about a day seems to take me a week. I'm doing my best to improve my programming abilities though. I should be in the library doing that right now but I got distracted.
33896 cr points
Send Message: Send PM GB Post
M
Offline
Posted 5/29/17
I'm just a dabbler. I took coding courses but didn't pursue a degree. I use coding for work, but it's not really part of my job description.

Interesting reading that, none of them quite fit my coding style though.

I'm the "I know enough to figure out what I want it to do, then I'll go spend some time online and adapt coding samples until it works. After a month or so I forget what it was I did exactly and have to refresh myself." Adding good and consistent commenting is important on drafts.
5493 cr points
Send Message: Send PM GB Post
Offline
Posted 5/29/17
I am the type that couldn't tell you what programming is
5615 cr points
Send Message: Send PM GB Post
31 / M
Offline
Posted 5/29/17 , edited 5/29/17

ninjitsuko wrote:


fredreload wrote:

Having to look through their code really gets me to learn a variety of coding styles :P, if you can read a messy code, reading professional code should be relatively easy. That but I still got years of programming experience ahead of me, so don't take my comment too badly . My hobby is on the Open Worm project and the search to generate a digital consciousness. I've taken an interest in 3D and gaming side, as well as immortality. So I believe one day a digital consciousness could be generated


Bolded Part:
I will say that my years of reading horrible, messy coding has made it easier to read. The reason why it's not accepted too often into the professional realm is that it's not scalable. One person's messy code can end up being a hack/workaround that proper code could fix permanently. On top of that, when you're debugging 2,000,000+ lines of code for one application (or "suite" of applications) .. uniform and professional code make for a significantly easier time debugging than when 1-2 developers are messy and unprofessional.

The issue that I've had at the current company I'm at is that it was originally created by a bunch of programmers that were contracted outside of India and China due to trying to implement an "idea". 11 years later, I go to upgrade and change things... absolutely none of the code is usable. I had to single-handedly create a new UI, backend, and server platform because they simply did a hack-job with the code. It's the main reason why you show your portfolio off when applying for a software engineer position: if you can show off how professional, clean, and optimized your coding is - your college degree will only be icing on the cake (or not required at all, depending on the size of the company).


I agree the security of our application might have some flaws, but in terms of user interface is pretty good and flexible. FineUI is the package we are using and you can take a look at the demo here http://fineui.com/demo_pro/#/demo_pro/grid/grid.aspx, click on the top right "</>" sign for the source code. The database we are using is Oracle and we divide into user interface and logic interface, SQL usually join a few databases and we select individual column queries instead of using * for clarity and efficiency. The databound hack is used for embedding an image into a cell in gridview because of customer's expectation. If you click on a cell in the gridview it would pop up a window with getshowreference(). The grid cell editing is used to modify the data in the column and sent to the backend Oracle database. The grid cell needs to change color in respond to a delay in date between two columns in gridview. Btw you cannot build the UI with hand, all this is hard coded into the aspx page ex. <f:DropDownList>.

We've also used another package like Telerick http://www.telerik.com/, but I must say FineUI is more flexible in terms of presenting and editing gridviews. Telerik has slightly more emphasis on charts which we've replaced with the package Highcharts https://www.highcharts.com/. All searches is done from the backend database as a variable without having to use rowfilter to increase speed and efficiency. The chart also has to link to database and is exportable

Well, I'd like to hear some expert's opnion , all this here is about 20% what the two Chinese people did , they're crazy
30098 cr points
Send Message: Send PM GB Post
F
Offline
Posted 5/29/17
none
1232 cr points
Send Message: Send PM GB Post
16 / M
Offline
Posted 5/29/17
I don't really think these categories actually describe anyone.
I'm just some guy who gets an idea and makes some C/C++ spaghetti to go along with it.
And I'm okay with that.
10970 cr points
Send Message: Send PM GB Post
34 / M / People's Republic...
Offline
Posted 5/29/17 , edited 5/29/17
This guy doesn't know what he's talking about. "Ninja" comes from the Ruby on Rails world, where proficient RoR devs would often be called "ninjas" or "rock stars". What he describes as "hipster" is closer to the actual definition of ninja.

PS: I write desktop JS (not browser) and I use Standard JS style.
10970 cr points
Send Message: Send PM GB Post
34 / M / People's Republic...
Offline
Posted 5/29/17

aListers wrote:

I'm probably a ninja. I'm in my 3rd year of university (I've failed 2 modules so I'll have to resit them) so I'm not quite proof that a degree means nothing yet. However, I am crap at programming. What seems to take others about a day seems to take me a week. I'm doing my best to improve my programming abilities though. I should be in the library doing that right now but I got distracted.


What he describes as "hipster" --that is the more common definition of 'ninja' in the professional coding world. This guy is misusing the term.
72 cr points
Send Message: Send PM GB Post
21 / M
Offline
Posted 5/29/17
lol i'm not programmer.
First  Prev  1  2  Next  Last
You must be logged in to post.