|
|
|||||||||
|
|||||||||
| |||||||||
|
|
|
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
Starting off on the right foot
I did a search and couldn't find this topic, so decided to launch off and ask ...
how does one get started in programming? I don't come from a computing background but have always been fascinated how code can make computers do some wonderful (and some not) things. I am specifically interested in how some of you might go about designing an intensive and thorough training course for someone with no programming experience. I am gaining rapid familiarity with the bash shell command line on Linux (Red Hat 7.2 and now, 8.0), and have dabbled some with Python both of which I have really enjoyed. What I'm wanting to pick your collective brains about are these areas: 1. What are the 3 languages that I should focus on (I suspect C, want to include Python, so what about the 3rd - perl? java? C++? assembly!!! and what would be the best reference books for the respective languages)? 2. How does one study programming (again, I suspect that doing coding as per examples in the books/tutorials, but what other tips/suggestions do people have bearing in mind that fast-tracking would be nice: I don't have an entire life to live over unfortunately!!)? 3. What time-frame would I be looking at in terms of becoming competent in these 3 languages, if I were to spend an average of an hour every day learning/practicing, and given someone of average intelligence with little numerical background/numeracy skills? 4. How will I be able to measure any progress made in acquiring skills in these arcane arts? Just in case the answers to #1 above concern my intentions in learning, I'd be interested in developing programs that can be used for network (LAN/Net) security altho' not necessarily web-page design, utilities and application-type programs, etc. Thank you in anticipation for anyone's input on this. |
|
#2
|
||||
|
||||
|
Well you seem to have main skill - will to learn. Everything else is pretty much irrelevant
![]() 1) Ok, if you want to develop for lan or sec related then you surely have no business learning php or asp. Personally I'd go with c (unixesh) and perl. 3rd one is a matter of choice - if you like python go with it, althout I'm not familiar with it. Java *could* be a good choice, thou it's not really clear (at least for me) where it stands right now. 2) Books are ok, but more often then not they reflect author's opinion and methos, which aren't always correct ones. Granted, there're classics such as 'design patterns' which you should find time to read, but for the rest of them - don't bother. Instead read online tutorials and hang out on forums/mail lists. 3) You'll be in ok shape in 1 year. 'Competent' is very subjective thou - you can do it for several decades and still not be 'competent' comparing to language developers. But one year shoud give you general idea and you'll be able to do some nifty things. 4) Forums/mailing lists - find some community which you like and stick with them. At first you will have little to no idea of what they're talking about, then you'll learn some and you'll undestand them better. That will continue for some time and one day you realise that you're good at it and can help others out. Then you look for another 'higher-level' community and learn from pros there. As I said - main thing is to enjoy it, everything else comes after.
__________________
And you know I mean that. |
|
#3
|
|||
|
|||
|
Thanks for getting back to me ALCapone.
It is reassuring that my will to learn is the key ingredient. At this point in my loooong journey, I need all the mileage I can get!! I was thinking about PHP as a possibility because it seems quite a popular language among web-developers (is this correct?) and I was thinking that it would behoove me to at least be familiar with it to some extent. I would put it in the same class as HTML - not necessarily an essential language to learn (for me at least), but one of those that I should have some degree of familiarity with given the prevalence of the Net as a virtual library/ high street/community. Also, it could be fun to see how these flashy web-sites actually work!! I was certainly thinking of learning C. I appreciate that there are supposedly some disadvantages to it (memory allocation problems I believe?), but it seems so ubiquitous that it would be like learning to fly without having ever learned to walk. Perl also seems like a wise choice, so I guess that unless others on this board have compelling arguments to the contrary, I will be settling for 'C', 'perl' and 'python' (which - altho' hardly well-informed to know any better/different - I do like). That was helpful. I also appreciate your comments about books reflecting the author's opinions, etc. I reckon that that is the case no matter what one reads from philosophy to pottery. In itself, that doesn't concern me too much, because I was thinking that that would be more of a source of concern if I only read one book. But I am quite an avid reader (once I can work through the jargon and lengthy ill-explained examples and references of this kind of writing), and am more than happy suspending closure on whether someone's ideas are correct in a final sense. Basically I'd be wanting to extract the programming structure (is that 'design flow'?), any tips/hints/etc., and to learn by example applications to real life situations. So, I'm okay with reading books but will certainly want to expand my list to include on-line tutorials, HOW-TOs, and the like. So if there any that you would recommend to me given the foregoing, please let me know. I'm currently working my way through SAMS 'Shell Programming' and Paul Sheer's 'RUTE's Users Tutorial and Exposition' (Linux intro book - really good) and have Gauld's 'Learn to Program using Python' which I have read once but will read again within the next few weeks. So, any recommendations (URLs will be good too, if you can). 1 year doesn't sound too long. I think I can handle that . I take your point about 'competency': probably wrong word - let me say programming-able. Is this 'programming-able' in one or three languages within a year, if that's a fair question to ask? That way I know that if within 11 months I still can't do a 'Hello World' program then I should take up needle point and quit wasting my time!! ![]() Having stumbled across devshed in the last couple of days, I will certainly 'lurk' here and also on a couple of other forums too. I can understand and appreciated your comment about discovering one day that I knew what people were on about and being able to help others out. I have experienced that in other learning areas and can attest to that as a valid description of how it suddenly all seems to pull together. Thank you reminding me of that process. I agree, finally, with your last point: if it ain't fun/enjoyable by and large then what the heck's the point!! Life's too important to take seriously. Anyway, ALCapone - thank you for your considered thoughts to my query. If you have any worthwhile references to assist me in my learning journey, please forward these to me. Many thanks. |
|
#4
|
||||
|
||||
|
You certainly seem to be interested in this beyound common 'I am fascinated but too lazy to learn' and 'teach me everything but do it within 15 minutes' attitudes. That's great!
Devshed, mainly, is web-oriented community. But a lot of us come from c background so we should be able to answer most of your questions. Same with perl - not many threads go un-answered. I am not so sure about python, as it doesn't have much weight here. You're right about php - it's becoming more mature and more widely used with each release. It is web-scripting language of choise for me, although I am not one of those 'PHP - People Hate Perl' guys. Anyway - you might want to glance at it and see if you like it. However strange that may sound, I've done most of my c programming on windows. I reckon one of the best compilers and tutorials are from Jacob Navia @ http://www.cs.virginia.edu/~lcc-win32/ The 250 pages long word-doc is surely worth reading if you're just starting with c. I am running out of time, so sorry can't post any links or books. I'll be back in day or so, and see what I got in my bookmarks. Take care. |
|
#5
|
|||
|
|||
|
Yep - I am interested in learning - the difficulty is, as explained, that coming from a non-programming background, my experience to date has been rather boot-strapping along. I have found the Linux community to be a tremendous resource generally, and my learning has picked up speed since I switched from Win98 to Linux, which is one of the (many
!!) reasons I switched to Linux anyway. A willingness to learn may be a key ingredient, but advice/input from those more experienced and knowledgeable as to the best methods with which to learn, errors to watch out for, guides to help one along the way, etc. - that is something that only comes with having walked the path, and all my willingness and enthusiasm isn't going to be able compensate for the lack of that calibre info. Surfing through several of the forums (or is that fora?) here at DevShed I am inclined to agree that the majority are interested in web-related programming/hacking. That's fine by me - everyone is a potential teacher. However, the input I am looking for is perhaps - at this point - more general, or more global than specialised, which I would say web-design/programming/hacking tends to be ... a specialisation of sorts (like neurosurgery is a specialisation of medicine). I may end up specialising at some point, but at this stage want to really just come to grips with the lay of the land, the field as a whole so that I can make a more informed choice once I have a firm foundational knowledge. I have downloaded the tutorial you recommended (comes in a zip format) and don't think I need the compiler working with a Linux machine (I reckon that most of those instruments/tools are already loaded - at least they are to the extent that I am able to unpack tarballs and install them using the gcc - unless I have already gotten the wrong end of the story here?). So I'll unzip it and begin reading it. Is there anything in particular that I should be paying attention in it, or just sit down and read from start to finish? Thanks for engaging with me in this matter thus far ALCapone: it has been useful and already there is a link to pursue. If you have the time to send me more please do so. I'll make a point of following as many as I can up. All the best AmF |
|
#6
|
||||
|
||||
|
You might want to take a look at devshed's own articles - they provide a decent introduction to wide range of topics including perl, python, php, databases as well as apache and general unix/linux administration. Then you can glance at this lib hosted by one of the members here (munkfish). Also Sams Teach Yourself Shell Programming in 24 Hours might appeal to you. www.onlamp.com offers nice collection of articles in different aspects of programming/adminstrating.
Sorry, that's not whole lot - I am sort of on vacation right now and my head is occupied with tons of other stuff IMO, it is best to learn by experience and not waste your time for theoretical stuff - so just stick around here or any other community and feel free to ask any questions (granted you search first ) pretty much about anything computer related. Don't be so harsh on yourself just because you're not from binary background - absolutely all skills can be gained by communicating and working with people who are fluent in the area, and computer is not an exception. |
|
#7
|
|||
|
|||
|
I am actually reading Sams Shell Programming in 24 hrs by Siranga Veeraraghavan, and found a 24 pg tutorial by Brian Kernighan "Programming in C - a tutorial" which I am about 1/3 of the way through.
Thanks (again) for help - this was a good lead in, and you have answered my initial questions. Now it is time for me to read and do and do and read. If you think of anything else, please don't hesitate: I'm in sponge mode right now, so ready to absorb most of what gets thrown my way ... info-wise anyway!! ![]() Enjoy your vacation ... and much obliged ALCapone. AmF |
![]() |
| Viewing: Dev Shed Forums > Other > Beginner Programming > Starting off on the right foot |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|