Searching \ for '[PIC] Help - How To Learn A Programming Language' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: www.piclist.com/techref/microchip/devprogs.htm?key=programming
Search entire site for: 'Help - How To Learn A Programming Language'.

Exact match. Not showing close matches.
PICList Thread
'[PIC] Help - How To Learn A Programming Language'
2008\12\07@230103 by Joseph Bento

face
flavicon
face
I previously sent this message, but forgot the [PIC] designation in  
the Subject.  I haven't originated many messages to the list.

With apologies to Wouter van Ooijen, the following is from his PIC  
tutorial website:

First you know nothing;
YOU ARE HAPPY

You first learn about the chip:
YOU LEARN AND USE ASSEMBLY

You first find out there is an easier way, so you can spare some time  
to watch TV:
YOU LEARN AND USE C

You first find out there is a simpler way, so you can spare all the  
time in TV, cars, girls, bars, traveling, yatch, relaxing, etc:
YOU HIRE SOMEBODY ELSE TO WRITE THE CODE.

You first find out your money is going fast, so you decided to do some  
work:
YOU LEARN AND USE JAL

There are additional steps of course, but I'm stumbling along as I  
proceed past step one.

I think that I have, perhaps, forgotten how to study.  I'm a  
professional technician.  I build engineers' prototypes at work.  For  
that matter, I've had a soldering iron in my hand since I was a  
child.  I think that's part of my problem.  I know what I want to do;  
I know how the I/O pins are supposed to be utilized to design a  
circuit, but I have issues with learning the methodology of writing  
code.

Too many resources?  I have tutorials in Assembly, C, and JAL.  I can  
follow examples in each to light or blink an LED.  Once I accomplish  
that, I know enough to alter the existing code to light or blink an  
LED on an alternative port.

That's where I stop.  I don't know how to put the blocks together to  
proceed with my own ideas.  There may be only 37 or so instructions to  
a 16F84 (for example), but it's knowing what to do with those  
instructions.

So, how does one properly study to learn Assembly or any other  
language for that matter in the most efficient manner?  I follow the  
JAL projects in Bert van Dam's excellent book, and perhaps I'm  
learning something, but I'm doing well in developing my own projects.

I'm just expressing some frustrations.  I'm eager to learn, but I  
think I have too much information at my disposal adding to the  
confusion.  Should I forget Assembler and shelve the other language  
books?  Should I forget Assembler and spend my time learning a high  
level language such as C or JAL?

With any tutorial, I always like projects.  I find it much more  
rewarding to see the results and what changes or errors bring.

Supposedly, it is said that it takes 10 years of diligence to become  
an expert.  Well, maybe I have enough time left that I can achieve  
some manner of proficiency as a programmer.  :-)  I'm essentially at  
ground zero, so there's a lot of work to do!  With all my books et al,  
I just haven't quite began (or perhaps know how to begin) properly.

So, how does a career electronics technician enter into the realm of  
[PIC] programming?

Joe

2008\12\07@232401 by Joseph Bento

face
flavicon
face

On Dec 7, 2008, at 9:00 PM, Joseph Bento wrote:
>
> So, how does one properly study to learn Assembly or any other
> language for that matter in the most efficient manner?  I follow the
> JAL projects in Bert van Dam's excellent book, and perhaps I'm
> learning something, but I'm doing well in developing my own projects.
>

I think you figured out that I meant that I'm "NOT" doing well in  
developing my own projects.  Sorry for the lack of proofreading.

Joe

2008\12\08@053700 by Gerhard Fiedler

picon face
On 2008-12-08 02:00:39, Joseph Bento wrote:

> I'm just expressing some frustrations.  I'm eager to learn, but I  
> think I have too much information at my disposal adding to the  
> confusion.  Should I forget Assembler and shelve the other language  
> books?  Should I forget Assembler and spend my time learning a high  
> level language such as C or JAL?

I think that you should learn both: you should know (at least) enough
assembly to understand how it relates to the chip's architecture and to be
able to read anything that your interpreter or compiler is doing, but I
wouldn't recommend doing actual projects in assembly (with the possible
exception of a few smaller ones as learning experience -- but this doesn't
have to be in the beginning).

Of course you'll find many here who will disagree with this... :)

> With any tutorial, I always like projects.  I find it much more  
> rewarding to see the results and what changes or errors bring.
> [...]
> So, how does a career electronics technician enter into the realm of  
> [PIC] programming?

It sounds as if you were pretty much on the right track.

If you haven't done any project yet, select a language that looks like it
would suit you, select a project that looks simple, start giving it some
thought, and present the results here. I'm sure you'll get plenty of
feedback. Digest this feedback, proceed a step or two, and when/if you get
stuck again, present your problems, attempts to solve it and other thoughts
again -- and you'll again get feedback and solutions.

Gerhard

2008\12\09@094138 by Peter

picon face
Joseph Bento <joseph <at> kirtland.com> writes:
> That's where I stop.  I don't know how to put the blocks together to  
> proceed with my own ideas.  There may be only 37 or so instructions to  
> a 16F84 (for example), but it's knowing what to do with those  
> instructions.

The "efficient manner" depends on how you learn best. There are 11 types of
people who learn stuff. 01 those who learn by doing, 10 those who learn by
observation/study and 11 the rest who never get it and become financal analysts
who produce global financial crises. It would have been netter if some of those
would have turned out buggy mp3 players instead, by staying engineers.

01 Learning by doing means building successively more complex projects designed
by others, from kits and other sources, and simultaneously studying the relevant
subjects until one is able to tweak the projects and finally make some from
scratch. This is slow and painful but suitable for people who do not have an
engineering background, have a lot of time and like to tinker with projects. It
is also relatively low cost.

10 Learning by study means getting hold of the relevant engineering curriculum
from the local university or college, getting the study materials (lots of books
to read - a university used book store will be your favorite haunt for years!),
learning what's in those until one is able to complete most of the assignments,
followed by some practical work that will cover the more practical aspects of
projects (such as, soldering, providing ground to all the modules even if the
wires are not in the schematics, and other more esoteric blue-collar type
things). This is in fact a sort of university degree course, without the
university and without the degree.

And the absolutely worst way to learn is to do it alone. Find someone your age
and with your set of learning requirements and do it as a team. You will need
someone to bounce ideas off of, and the Internet is no substitute for a live
friend. Getting this done in a local trade school, vocational school etc, will
also get you a likely recognized certification.

Internet tutorials are worth what you pay for them, and many are riddled with
mistakes and bad advice. Hint: you can limit your internet searches to a higher
signal/noise ratio on google by adding site:edu to each search when looking for
technical terms. Also a dictionary is invaluable if you have trouble with
English, especially with highly technical word spellings in searches.

"Learning to program" means to achieve what a CS student learns in about 4 years
of study at a university, followed by 1-2 years of real work in a paid job. If
you also want to learn to "do electronics" figure in another 4 years for the
equivalent electronic engineering degree, plus 1-2 years of experience as above.
So what you are trying to achieve is likely comparable with what sufficiently
intellectually endowed and financed individuals achieve in about 8 to 12 years
of life. There is a reason for those occupations having high salaries (in
civilized countries). Oh, and, by the way, 25 to 75% of engineering students
drop out of the course and do something else eventually. Some dropouts become
rich and famous. One droput's name is Bill Gates III, afaik. Even if famous does
not necessarily imply "famous engineer".

Back to objective reality:

Learning to program simple assembler, jal, C etc programs is one thing, learning
how to make them work in an environment with interrupts (concurrent
programming), is something else, and making a product or at least a project that
won't catch fire or kill someone is yet anoher thing. So you need to define your
goals very clearly, how high do you want to climb, how much time have you got,
and how much money, and what will you do with it all when finished.

Peter


2008\12\09@101301 by Wouter van Ooijen

face picon face
> The "efficient manner" depends on how you learn best. There are 11 types of
> people who learn stuff. 01 those who learn by doing, 10 those who learn by
> observation/study and 11 the rest who never get it and become financal analysts
> who produce global financial crises. It would have been netter if some of those
> would have turned out buggy mp3 players instead, by staying engineers.

The 01 and 10 types roughly correspond to bottom-up and top-down
designers. The 11 types are the ones in my classes that make me wonder
how they ever passed the first year, and how I can politely but firmly
tell them to look for some other career. OK, I'll remember to exclude
finance. Maybe arts is OK?

--

Wouter van Ooijen

-- -------------------------------------------
Van Ooijen Technische Informatica: http://www.voti.nl
consultancy, development, PICmicro products
docent Hogeschool van Utrecht: http://www.voti.nl/hvu

2008\12\09@110852 by Peter

picon face
Wouter van Ooijen <wouter <at> voti.nl> writes:
> The 01 and 10 types roughly correspond to bottom-up and top-down
> designers. The 11 types are the ones in my classes that make me wonder

01 is actually the "technician" or "practical engineer" approach.
10 is the "engineer" or "scientist" approach.
11 is the Joe sixpack went to college and it didn't help approach.

Peter


2008\12\09@123829 by Joe Bento

face
flavicon
face
Peter wrote:
> 11 is the Joe sixpack went to college and it didn't help approach.
>  
I guess that goes with the "There are 10 types of people in the world."

Joe (not sixpack).



2008\12\10@102141 by Peter

picon face
Joe Bento <joseph <at> kirtland.com> writes:

> > 11 is the Joe sixpack went to college and it didn't help approach.
> I guess that goes with the "There are 10 types of people in the world."

11 (== 3 in base 10)

> Joe (not sixpack).

I should have said Namenotonlist Sixpack. My mistake.

Peter


2008\12\10@112730 by olin piclist

face picon face
Peter wrote:
> 11 (== 3 in base 10)

3 is not a valid digit in base 10.  It is however in base ten.

********************************************************************
Embed Inc, Littleton Massachusetts, http://www.embedinc.com/products
(978) 742-9014.  Gold level PIC consultants since 2000.

2008\12\10@114132 by Peter

picon face
Olin Lathrop <olin_piclist <at> embedinc.com> writes:
> 3 is not a valid digit in base 10.  It is however in base ten.

Caught, tarred and feathered.

Peter

2008\12\10@120533 by Joe Bento

face
flavicon
face
Peter wrote:
> Olin Lathrop <olin_piclist <at> embedinc.com> writes:
>  
>> 3 is not a valid digit in base 10.  It is however in base ten.
>>    
>
> Caught, tarred and feathered.
>
> Peter
>
>  
Yes, I paused at that one momentarily as well!  :0

Next time you're upset, give some extra time and count to 1000.

Joe

2008\12\10@133045 by Vitaliy

flavicon
face
Peter wrote:
>> > 11 is the Joe sixpack went to college and it didn't help approach.
>> I guess that goes with the "There are 10 types of people in the world."
>
> 11 (== 3 in base 10)

Joe was referring to the fact that there are 10 kinds of people in the world
(those that get binary, and those that don't).

Vitaliy

2008\12\11@041203 by apptech

face
flavicon
face
> Peter wrote:
>> 11 (== 3 in base 10)
>
> 3 is not a valid digit in base 10.  It is however in base ten.

Indeed.
It's valid in all bases 4 and up.
Aka 100 and up.


R

2008\12\11@063816 by Byron Jeff

flavicon
face
On Wed, Dec 10, 2008 at 06:24:03PM -0500, apptech wrote:
> > Peter wrote:
> >> 11 (== 3 in base 10)
> >
> > 3 is not a valid digit in base 10.  It is however in base ten.
>
> Indeed.
> It's valid in all bases 4 and up.
> Aka 100 and up.

Russell,

It's funny how you missed the point. You can't use numbers when naming
bases because the radix needs to be based on a number system. So...

It's valid in all bases four and up.

BAJ

2008\12\11@180900 by John La Rooy

flavicon
face
On Thu, Dec 11, 2008 at 6:38 PM, Byron Jeff <spam_OUTbyronjeffTakeThisOuTspamclayton.edu> wrote:
> On Wed, Dec 10, 2008 at 06:24:03PM -0500, apptech wrote:
>> > Peter wrote:
>> >> 11 (== 3 in base 10)
>> >
>> > 3 is not a valid digit in base 10.  It is however in base ten.
>>
>> Indeed.
>> It's valid in all bases 4 and up.
>> Aka 100 and up.
>
> Russell,
>
> It's funny how you missed the point. You can't use numbers when naming
> bases because the radix needs to be based on a number system. So...
>
> It's valid in all bases four and up.
>
> BAJ

Since it's a single digit in this case, it's not really ambiguous is it?

John

2008\12\11@183322 by Joe Bento

face
flavicon
face
Vitaliy wrote:
> Peter wrote:
>  
>>>> 11 is the Joe sixpack went to college and it didn't help approach.
>>>>        
>>> I guess that goes with the "There are 10 types of people in the world."
>>>      
>> 11 (== 3 in base 10)
>>    
>
> Joe was referring to the fact that there are 10 kinds of people in the world
> (those that get binary, and those that don't).
>
>  
Yes, and I saw someone with the t-shirt the other day:

There's no place like 127.0.0.1

Joe

2008\12\11@185702 by olin piclist

face picon face
> It's funny how you missed the point. You can't use numbers when
> naming bases because the radix needs to be based on a number system.

There is only one number base: 10.


********************************************************************
Embed Inc, Littleton Massachusetts, http://www.embedinc.com/products
(978) 742-9014.  Gold level PIC consultants since 2000.

2008\12\11@190559 by Bob Blick

face
flavicon
face

On Thu, 11 Dec 2008 18:56:48 -0500, "Olin Lathrop"
<.....olin_piclistKILLspamspam@spam@embedinc.com> said:
> > It's funny how you missed the point. You can't use numbers when
> > naming bases because the radix needs to be based on a number system.
>
> There is only one number base: 10.

LOL!

--
http://www.fastmail.fm - Faster than the air-speed velocity of an
                         unladen european swallow

2008\12\11@204012 by Jinx

face picon face
> There's no place like 127.0.0.1

And

10 HOME
20 SWEET
30 GOTO10

2008\12\11@211838 by Vitaliy

flavicon
face
Jinx wrote:
>> There's no place like 127.0.0.1
>
> And
>
> 10 HOME
> 20 SWEET
> 30 GOTO10

Won't it result in a syntax error?


2008\12\11@231721 by Jinx

face picon face
> > 10 HOME
> > 20 SWEET
> > 30 GOTO10
>
> Won't it result in a syntax error?

Pssssst..... (whisper) it's just pretend

2008\12\12@003722 by Thomas C Sefranek

flavicon
face


----- Original Message -----
From: "Vitaliy" <spamspamKILLspammaksimov.org>
To: "Microcontroller discussion list - Public." <.....piclistKILLspamspam.....mit.edu>
Sent: Thursday, December 11, 2008 9:16 PM
Subject: Re: [PIC] Help - How To Learn A Programming Language


{Quote hidden}

Seeing the current state of the economy, I'm not surprised they have an
erronious tax on that too!


 *
 |  __O    Thomas C. Sefranek  EraseMEtcsspam_OUTspamTakeThisOuTcmcorp.com
 |_-\<,_   Amateur Radio Operator: WA1RHP
 (*)/ (*)  Bicycle mobile on 145.41, 448.625 MHz

ARRL Instructor, Technical Specialist, VE Contact.
hamradio.cmcorp.com/inventory/Inventory.html
http://www.harvardrepeater.orgChecked by AVG - http://www.avg.com
Version: 8.0.176 / Virus Database: 270.9.16/1843 - Release Date: 12/11/2008
8:36 AM

2008\12\12@011339 by Forrest W Christian

flavicon
face
Olin Lathrop wrote:
> There is only one number base: 10.
If base 1 meant binary, and base 7 meant octal, and base 9 meant
decimal, and base F mean hexadecimal, then things would be a bit less
ambiguous...if not a big more confusing.

Of course you could always say "base 7+1", which is obviously not
ambiguous, and perhaps a bit less confusing.

-forrest

2008\12\12@013516 by William \Chops\ Westfield

face picon face

On Dec 11, 2008, at 10:13 PM, Forrest W Christian wrote:

> Of course you could always say "base 7+1", which is obviously not
> ambiguous, and perhaps a bit less confusing.

I do recall seeing some real-world assembler that included:
       radix 5+5

BillW

2008\12\12@081943 by Peter

picon face
William "Chops" Westfield <westfw <at> mac.com> writes:

> I do recall seeing some real-world assembler that included:
>        radix 5+5

That is evil. What is the base was set to 8 when the statement was executed ? I
think that the way strtoul() interprets the base is the sane thing to do (with
the base flag set to 0). I also think that whoever carried over the old
convention that leading zeros indicate octal base in most unix shells should be
given a free 5-year no parole "vacation" in gitmo. The number of times scripts
went crazy because I formatted numbers with leading zeros for constant width and
then did comparisons or arithmetic on them is astronomical.

see:
http://www.google.com/search?q=shell+number+octal+leading+zero

Peter


2008\12\12@084138 by Peter

picon face
Thomas C Sefranek <wa1rhp <at> arrl.net> writes:
> Seeing the current state of the economy, I'm not surprised they have an
> erronious tax on that too!

I don't think that the economy is in a bad state. I think that is is closer to
reality because a lot of lies and schemes that should not have been allowed to
exist went titsup. So it is more of a readjustment. The ups and downs that cause
the banks to hold back loans and are the main cause of the current pain should
even out once the big fat fruit stop falling off the tree. After all, people
still need to drive cars to get around, buy food and heat their homes. It's that
just a lot of bs that has powered magic "high yield investments", such as
subprime housing mortgage and housing development schemes is now gone. Working
honestly for some pay and offering reasonable, small, sustainable dividends will
become fashionable again soon, with or without governments, big corporations or
banks ... it's their choice if they want to quit or come along, I guess. And my
heart really bleeds for the poor bankers who will have to commute in 1st class
instead of private jets and drive something smaller than a Rolls. I believe that
the current crisis is about belief in the wrong kind of news and values by
decision-makers, and very little about a de facto change in reality.

Peter


More... (looser matching)
- Last day of these posts
- In 2008 , 2009 only
- Today
- New search...