遊客:  註冊 | 登錄 | 幫助





標題: [討論] for programming learners...Learn the concept
1022292057     Rank: 4Rank: 4
水中藍
性別 男
UID 17104

精華 0
帖子 165
積分 798   詳情

閱讀權限 50
註冊 2006-12-9
來自 Canada
狀態 離線

 
 
 
 
發表於 2008-3-18 06:59 AM  資料  個人空間  主頁 短訊  加為好友 
for programming learners...Learn the concept

i started this talk becoz over the years i spent on forums, i found many who claim themselves as programmers are really not,
and i hope this talk can really clear up all the misunderstandings for the new learners so that they won't walk the same path and ended up as a second-rated programmer or not even considered as a programmer

Here is the first problem that i see VERY VERY often
when u learn programming, u learn concepts, not languages
don't just learn how to do it in one specific language, instead, u should learn the concept of it, so u can do it in any language
u will be suprise how many programmer(at least this is what they call themselves) would say "i don't no how to do it in this language, i only no it in C++ or java"
these ppl are just "c++ or java development application USER", they are no "programmer"
they can't do it in a different language, not to mention asking them to do it in another platform other than x86

First off, when we talk about programming, it includes all development of drivers, firmwares, OS application, website, cellphone applications, operation system (include gaming console like PS3, cellphone system or even TV), compilers, assembly, etc etc, tons! basically ALL hardware would require programming
all of those different kinds of programming uses the same concept, so as a real programmer, there shouldn't be any problem programming in any of these environment
but for what i have seen, most learners have mistaken or being too narrow that they are only learning OS application or even worst, Windows application programming
ya, that alone might be enough for u to earn a living since computer usage is getting more and more dominate, but u can never become an advance programmer
moreover, what if there is a sudden change in the world that computers are no longer used or like few years back then when the IT burst,
many ppl lost their jobs and couldn't find one back then just becoz their programming skills are too narrow and everyone have to stick back to application programming causing too many ppl but too little jobs
IT industry totally collapsed, but there are still tons of positions opened for gaming industry, cellphone industry, chipset, etc
I can tell u that not a single person that graduated from good computer school that i no of suffered in that period, all of them easily got a job in other areas like automobile system programming, phone system programming, satellite, PS2, etc
the reason is none other than good computer school teach u concept

who no if there will be a sudden outburst on the computer science graduates right, and who no when will the quantum computers be out and replace all current computers, and u won't be able to program like u used to
if u didn't learn the base, the concept, u will have a hard time always keeping up with the new technology
many ppl said computer science u must keep up closely and update urself everyday, well true, but i won't say u "must", it will be true if u didn't learn it correctly from the start
in my workplace, there are old guys who used to program with punching holes on metal cards, and they are able to program perfectly fine nowadays with many years of not touching programming
y? they no the concept

programming is huge, it's not only limited to java and c++ on windows applications, that's not even 10% of it, u should widen ur horizontal
personally, i don't buy the talk about getting good in programming through practice, u no how to do it then u no how to do it
a lot of practice just let u memorize the syntax, doesn't help improving ur programming skills, look at ur workplace for ppl who programmed for 20 years, they ar no better than the fresh graduates

To improve, improve ur varies computer knowledge, for example,
learn how CPU, memory, video cards, and all other part works together - now u can program in the most optimized way that won't cause burden on any of the hardware parts and even do hardware programming for these parts
learn how high-level programming is interpreted in computers - now u can program ur own java or c++ application development software
learn how windows, linux, dos, mac, etc works - now u can program ur own operation system
learn the difference between different platforms - now u can program in game console, cellphone, 64bit, and no longer restricted to x86 windows application
if u are good with theories and stuff, u can even do structure designs for any kinds of hardware

in this post, i have defined what a programmer is and gave some suggestions, mainly just want to clear up the misunderstanding many ppl have and want to show u that programming is not as narrow as many of u think
...LEARN THE CONCEPT

feel free to tag along any thoughts u have

頂部

  小神     Rank: 4Rank: 4
水中藍
性別 保密
UID 11831

精華 0
帖子 2634
積分 1386   詳情

閱讀權限 50
註冊 2006-9-12
來自 天堂
狀態 離線

 
 
 
 
發表於 2008-3-18 08:02 AM  資料  個人空間  短訊  加為好友 
咁原來我以前間學校係幾好wo..
佢冇乜教language 架..
只係教theories..

但係以前好唔鍾意..
因為做project 果時要花好多時間自己學language syntax..

頂部



ah_cho     Rank: 5Rank: 5Rank: 5
風中藍 (天藍看更)
性別 女
UID 5699

精華 1
帖子 19196
積分 6063   詳情

閱讀權限 60
註冊 2006-8-11
來自 住0係楓葉國既日本漢奸 ... ... ...
狀態 離線

 
 
 
 
發表於 2008-3-18 12:46 PM  資料  個人空間  主頁 短訊  加為好友 
我唔係讀programming
但係有時都會寫下program咁,識但唔叻
我覺得最緊要係problem-solving skill,即係你要好logic咁去approach一個solution
點去setup去solve一個problem先係最重要
學識咗,買本programming language bible返屋企,睇睇下就會識





頂部

1022292057     Rank: 4Rank: 4
水中藍
性別 男
UID 17104

精華 0
帖子 165
積分 798   詳情

閱讀權限 50
註冊 2006-12-9
來自 Canada
狀態 離線

 
 
 
 
發表於 2008-3-19 12:29 AM  資料  個人空間  主頁 短訊  加為好友 
quite true, that's y the world programming contest, ACM, test problem-solving
but i disagree on the part where u said for knownledge, just get a programming language bible
those books if u don't actually read it and understand the concept, it won't help u other than the syntax
it would work if u are doing simple programming, but when it get to the hard stuff...
even if u have very good problem-solving skills, with weak knowledge, u won't be able to do a thing
that's y university teaches so many theories, it is to pack u with knownledge
many of those theories are so hard that it will just never be used in real-life becoz so little ppl have the ability to implement them, most ppl basically just won't understand it
ppl with more experience on programming would understand this
there are just time when u just won't be able to program becoz u don't have enough knownledge on that part, then the only choice is to learn that knownledge urself, but takes a lot of time, or just ask help from a person with more knownledge

a good example would be asking u to program a security program for windows,
first off if u don't understand windows, u won't no all the security holes it has, and u can be pretty sure that there won't be books that state all windows security holes (coz windows ofcoz won't publish this themselves, and other can't publish coz it's illegal without windows permission)
second, every security software is unique, security for other OS will be TOTALLY different from security for windows
Moreover, even if u manage to do it, ur security program itself will have tons of security holes, which defeat its whole purpose
there are also tons of other stuff to consider when programming security, like memory, network, and a lot of other parts that u can think of, becoz all these could be a possible tunnel for a security hole
like overflow ur memory to crash ur security program, change memory fetching lines to alter ur program behaviour, etc
u would require all those knowledge to program a security program, u can be pretty sure that using books as reference are not enough here (and the number of books u need will probably pack ur whole room)

Security is generally consider as hard in terms of programming

i believe usually there is only 1 or 2 introduction courses in universities that "actually" teach u how to program, all other courses are theories that u should use when u program
how hard is it to just program and solve a problem, a 12-years old can do it,
but y companies want graduates more other programmers that ar not? becoz the point is not to help them to program a thing (coz who can't), the target is to program a thing with clean coding, no resource wasting, easy to maintain, with the most optimized speed, etc

it will also depend on what ur job position is, if u are bug fixer or tester, then problem-solving skills for sure, but if u are architect, who cares about problem-solving, it's 100% knownledge

頂部

1022292057     Rank: 4Rank: 4
水中藍
性別 男
UID 17104

精華 0
帖子 165
積分 798   詳情

閱讀權限 50
註冊 2006-12-9
來自 Canada
狀態 離線

 
 
 
 
發表於 2008-3-19 12:31 AM  資料  個人空間  主頁 短訊  加為好友 
sorry, didn't realize i wrote that much, and sorry it's all in english too lol

頂部

  小神     Rank: 4Rank: 4
水中藍
性別 保密
UID 11831

精華 0
帖子 2634
積分 1386   詳情

閱讀權限 50
註冊 2006-9-12
來自 天堂
狀態 離線

 
 
 
 
發表於 2008-3-19 07:09 AM  資料  個人空間  短訊  加為好友 
回復 #5 1022292057 的帖子

不如你講下唔同job position 要有邊d 唔同能力la..

頂部

1022292057     Rank: 4Rank: 4
水中藍
性別 男
UID 17104

精華 0
帖子 165
積分 798   詳情

閱讀權限 50
註冊 2006-12-9
來自 Canada
狀態 離線

 
 
 
 
發表於 2008-3-19 11:01 AM  資料  個人空間  主頁 短訊  加為好友 
回復 #6 小神 的帖子

generally role divide into tester and developer (there is also program manager, but that does not really do programming stuff, so i will skip that)

tester (quality assurance, system analyst, validation, etc.)
- need knowledge of testing
- general programming skills (scripting would be a large part)
- depend on companies and roles, some require pinpointing issue for developer to fix, which then need problem-solving skills and more high-level programming skills

developer (developer, architect, software engineer, etc)
- stronger programming skills
- depend on roles, if involve bug fixing, maintaining software, problem-solving skills a must
- some companies have strong test team that pinpoint issues, then don't need much problem-solving
- depending on role, different kinds of knowledge may require
- architect need strong knowledge background, UML must, they do design of programming plan (generally not require to program themselves, pass to developer to program, but have to understand everything in the program)
- architect is usually a senior position as it requires very strong programming and theory knowledge

in terms of area
gaming industry - programming knowledge of graphics, GUI, interface, resource usage, hardware, artificial intelligence, TCP/IP, creativity
hardware field - programming knowledge of drivers production, platforms, OS, assembly, optimization, concurrency, resource, structure flows, strong knowledge background
business industry - programming knowledge of database, optimization, general programming
low-level area - programming knowledge of assembly, compilers, interpreteur, virtual machine, platforms, OS, hardware, strong knownledge background
web-based area - programming knowledge of web-based structure, security, database
etc

頂部


快速美言











一群熱心會員對本主題作出以下的回覆:

doggiekitty: I like your post! Thanks!!
doggiekitty: I am not a programming learner, but I learn something here.
mickeyGoUp: Hey numbie, thanks for starting this interesting thread! I have been SUPER busy the past week...
mickeyGoUp: And will be as busy this week I guess. So I will join the discussion a little later. Wait for me ok?
小神: Thanks for sharing!



最後回覆日期: 2008-3-20 08:22 AM
  編輯帖子
快速美言
           


當前時區 GMT+8, 現在時間是 2024-4-17 04:31 AM

    Powered by Discuz!  © 2001-2007 Comsenz Inc.   
Processed in 0.653943 second(s), 9 queries

清除 Cookies - 聯繫我們 - LIPS Corner 新天藍 - Archiver