# Education/Knowledge background



## nej12 (Jan 4, 2019)

Hi, 
there are so many smart people here, and I was wondering where all of this education comes from? 

what is the most important basics someone would need to understand programming? to be a programmer does one have to be really good at math? 
 i personally have no formal training, but have been exposed to it in the workplace and have used various types of computers over the years, and find it fascinating.   what really makes someone really excel, at excel??

Thanks,
Nej


----------



## TotallyConfused (Jan 5, 2019)

```
Hello Nej12
 
I see you are a new member here, so I’d like to start out by welcoming you. This is a fantastic place with a seemingly limitless amount of knowledge; knowledge freely and happily given by people who love to help others. The decision to join this website has been one of the best decisions I’ve ever made. You have asked some good questions and I hope I can at least partially answer them.
 
You asked:
1.  Where does all this education come from? 
            I can’t speak for the other members here, but in my case, while I do have a Bachelor’s Degree in Computer Information Systems (a fancy name for computer programming), I can’t say that has really helped me much, because I earned this back in the late 80’s. I’m not even sure if Excel was on the market then. If it was, I wasn’t exposed to it. However, that training did teach me a more detailed way of thinking than I’d known before and that has been a big help. As far as the other members here, I’d guess it’s most likely a combination of formal education and years of practical experience.
2.  What is the most important basics someone would need to understand programming?
            My answer to that would be two-fold. First, you need an UNLIMITED amount of patience. I’m being serious when I said UNLIMITED! I think computers are the most frustrating things humans have ever invented, even though I love those machines. You may spend hours or days struggling to get some program to work, until you reach the point where you literally want to pull your hair out. You’ll find yourself cursing the day you started programming. There will be some serious questions about your sanity at that time. However, if you are stubborn and determined enough to not quit, at some point you will make even a slight change to the code, and suddenly, everything falls into place. Nej, I have to tell you, when that happens, you will experience possibly the greatest joy you’ve ever felt. There is nothing quite like it. Suddenly all those long hours of seeing only error messages, don’t seem quite so bad.
 
            The second part of my answer would be a sharp eye for details. You will have a process in mind, and you will think that is what you have told the computer to do, however, that may not be exactly the case. Humans are visual creatures while computers are literal. As you’re typing in your code, your mind is racing ahead and so will ‘assume’ you have given complete, detailed instructions. The computer doesn’t know, or care, what you are thinking or want, it will ONLY do EXACTLY what your code says to do. Nothing more, nothing less. Accidentally typing a comma instead of a period or placing a parenthesis in the wrong place can make a world of difference. You may have two commands in the wrong sequence. Line ‘A’ should follow Line ‘B’ but you’ve placed them in the wrong order. Your program may work fine with no error messages; however, you will get the wrong answer. To debug your program, you have to think like the computer does and carefully analyze each detailed line of code as it’s written, not as you think it should be. Once again, as I said in the first part of my answer, when you find that misplaced parenthesis, and now everything works, you will jump up and yell ‘YAHOO!’
3.  To be a programmer, does one have to be really good at math?
            No, not necessarily, however, as in anything you do, the more ‘outside knowledge’ you have, the better. It’s true that while using Excel, a good portion of the time you will be working with numbers, but quite often text is involved too. It’s great if you can look at your numbers and mentally estimate what your answer should be, because that will give you a good idea whether your formula is working. Programing Excel or VBA doesn’t mean you will be doing the actual adding or subtracting, but that you will be entering the correct formula to allow the computer to make those calculations.
4.  What makes someone really excel at Excel?
            I’m not sure there is any one answer to that question. I think it would be a combination of everything I’ve said above here and more. A lot will depend on how bad you want to learn Excel or any other type of programming. Are you willing to shut the TV off and forgo that soap-opera or that football game and read about or practice some command? Is your desire to know more, job related or just something you’re mildly curious about? If you have the time and money, would you enrol in a course? Do you enjoy solving problems? Are you a patient person or do you have to have instant gratification, or you lose interest? If you can answer ‘YES’ to these questions, then you’ve taken the first step to becoming a programmer. Keep in mind, as in most things in life, success doesn’t happen over night, but it is true that ‘practice does make perfect.’
 
I come here every chance I get and study the questions posed by people. Then I try to figure out a solution, even in my mind, given the limited Excel knowledge I have. After that, I’ll carefully study the answer offered by others. Sometimes I’ve set up sample programs and data, then played with the solution offered, trying to understand how and why it works. Because I know I can’t remember everything, I’ve set up an Excel file where I’ll copy and paste questions and the answers. This way, I have something to refer to when needed.
 
In the brief time I’ve been a member here, I’ve been fortunate enough to offer solutions to a few people. When I’ve been able to do that, I’ve been rewarded with a wonderful feeling. You seem to be interested in programming, so I hope something I’ve said here will encourage you to follow up and explore this wonderful world. Who knows, maybe some day you will have the solution to some problem I’ve struggled with. I look forward to that day. Good luck!
 
TotallyConfused (yes, in many cases, I still am) :)
```


----------



## Rick Rothstein (Jan 6, 2019)

While I have singled out only one of your numbered items for comment because I have some interesting (I hope) anecdotes regarding it, I just wanted to say how much I loved the complete set of points you posted... each one was spot on and should be helpful to the OP. Great job!



TotallyConfused said:


> ```
> 2.  What is the most important basics someone would need to understand programming?
> My answer to that would be two-fold. First, you need an UNLIMITED amount of patience. I’m being serious when I said UNLIMITED! I think computers are the most frustrating things humans have ever invented, even though I love those machines. You may spend hours or days struggling to get some program to work, until you reach the point where you literally want to pull your hair out. You’ll find yourself cursing the day you started programming. There will be some serious questions about your sanity at that time. However, if you are stubborn and determined enough to not quit, at some point you will make even a slight change to the code, and suddenly, everything falls into place. Nej, I have to tell you, when that happens, you will experience possibly the greatest joy you’ve ever felt. There is nothing quite like it. Suddenly all those long hours of seeing only error messages, don’t seem quite so bad.
> ```


I have been programming for some 35+ years now so a lot of the code I write comes pretty automatically now, but I remember clearly my beginning days of programming, even to this day. I remember writing code thinking that it was perfect. Then I ran it and it crashed. I then looked at my code where the debugger highlighted it, thought a bit, and said to myself, "What was I thinking, of course that wouldn't work!" I would rewrite the crashing part of the code and, thinking to myself, "Ah, now I've got it, this is what I should have written in the first place." Then I would run the code and... yes, it would crash again. I would then look at what the debugger highlighted and (eventually) figure out what was wrong and say to myself, again, "What was I thinking, of course that wouldn't work!" This process of thinking the code was correct and having it fail would usually go on for several iterations until the code did eventually work. A frustrating process, to be sure, but believe it or not, a quite worthwhile experience. All of those failure eventually teach you (eventually) what not to do under certain circumstances. These will (eventually) help direct you how to write correct code much quicker. The point of my comment is the same as TotallyConfused... stick with it no matter how much your code fails, it is all part of the learning experience. As a matter of fact, I think one learns the most about programming, especially in the beginning, by writing non-working code, so do not be discouraged by it.





TotallyConfused said:


> ```
> 2.            The second part of my answer would be a sharp eye for details. You will have a process in mind, and you will think that is what you have told the computer to do, however, that may not be exactly the case. Humans are visual creatures while computers are literal. As you’re typing in your code, your mind is racing ahead and so will ‘assume’ you have given complete, detailed instructions. The computer doesn’t know, or care, what you are thinking or want, it will ONLY do EXACTLY what your code says to do. Nothing more, nothing less. Accidentally typing a comma instead of a period or placing a parenthesis in the wrong place can make a world of difference. You may have two commands in the wrong sequence. Line ‘A’ should follow Line ‘B’ but you’ve placed them in the wrong order. Your program may work fine with no error messages; however, you will get the wrong answer. To debug your program, you have to think like the computer does and carefully analyze each detailed line of code as it’s written, not as you think it should be. Once again, as I said in the first part of my answer, when you find that misplaced parenthesis, and now everything works, you will jump up and yell ‘YAHOO!’
> ```


The first large program I wrote demonstrates this point perfectly. Back in the old days of BASIC (pre-VB) programming, you encoded your data in DATA statements which were comma delimited lists of data preceded by the keyword DATA. To read the data back into your code, you would  READ statements where there was a one-to-one correspondence between the two. The computer I was using at the time handled its graphics by redefining the standard character set by assigning assigning a number to each row defining the shape of that character, then you simply printed that redefined character to the screen at a given position. The program I wrote literally redefined every available character and then printed them to the screen in the exact order that was needed to create the overall picture on the screen from all of the individually redefined character shapes. So I encoded everything into the DATA statements being very careful not to miss any of the data elements. Once I finished (and note that it took hours and hours and hours to create the code for the redefined shapes and then type them all into the hundreds of comma delimited elements for the DATA statement), I ran the program and instead of the picture I expected to see, the screen way an incomprehensible jumble. I nearly cried. I eventually found the problem... on the third DATA statement, I inadvertently typed a comma as the last character on the line. Since DATA statements were comma delimited lists, this had the effect of moving each row of each character's redefinition code down one position so some of them went to the the correct character, but in the wrong spot which the rest went to the next character's redefinition where it did not belong! When I removed that single comma and ran the program... the displayed picture was perfect.


----------



## nej12 (Jan 19, 2019)

Hi TotallyConfused, What you've described really, really resonates with how I feel about what I've experienced so far!  Patience, do I have that? Very much so I would say. It's funny, sometimes I lay everything down and forget about it, then something sparks, and I'm back at it again - and so far it's because I'm reading something unrelated and like a lightening bolt out of a clear blue sky, on occasion, the solution appears.  Ha!  Thank you for sharing, it's gives me hope.


----------



## nej12 (Jan 19, 2019)

Hi Rick, thank you for your insight, and encouragement to not give up!  the pre-vb experience that you shared is just mind blowing... wow! as i was reading i thought to myself there ought to be a "programmers celebration day", and there actually is according to the timeanddate website which was held 1/7/19.  seriously, if there ever was a zombie-apocalypse, we'd need to get all of the world programmers to Washington to repopulate the world.         P.S. for any TWD fans, I have not finished season 5 yet.


----------



## TotallyConfused (Jan 22, 2019)

Hello Rick

  I read your comment and I want to THANK YOU. I’m flattered that someone with your experience and vast knowledge as a programmer would think I’d given good advice. Your kind words of praise made my day.

  It was interesting to hear you talking about the ‘good old days’ of programming, where we put everything in DATA statements. Yes, I remember them, and what a job it was to type all that information into the program. At that time, we had Basic, then Basica followed by GWBasic. I liked that version. Boy, the wonderful things we could do with that one, or so we thought at that time. You may remember for sure, so correct me if I’m wrong, but with the original version of Basic, it seems to me all we could do was display things on the monitor because there was NO way to print something. Speaking of monitors, we had a choice of two types; we could have one that displayed text in amber color or displayed everything in green against a dark background. The monitors were small, not like the huge flat screens we enjoy today.

  Our computers weren’t like the speed demons we have today. I can remember one of the assignments I had while in University; we had to draw a rectangle of a given size at a specified location on the monitor using the LOCATE statement. The purpose was to introduce us to loops using the FOR-NEXT command, and of course we had to look up the proper ASCII codes. I finally managed to get everything to work, however, it was in such slow motion that you could follow the cursor as it crawled across the screen, drawing the line behind it. It was a thrill to watch it happen and I was proud of myself for my great accomplishment, because I felt that now, I was a computer programmer. Talk about being conceited!

  I’m sure you remember the only way we had to store information as a backup was on those large 5 ¼ inch floppy disks. I’ve heard that the earlier ones stored only half as much data, but the first ones I used would hold 180,000 bytes. It wasn’t to long after I started my course that ones with the huge capacity of 360K. bytes became available. WOW! We were sure you would never manage to fill one that large. How little we knew. My first computer had a whopping 640K of memory. Of course, there were no such things as USB ports, Flash drives or the mouse. I can’t remember the speed of my first modem, but it wasn’t very high.

  Once again, I want to THANK YOU Rick for your generous praise. Thanks also for taking me on such a pleasant stroll down memory lane and for sharing your experiences. Reading your interesting comments brought back many memories; most of them happy ones. I don’t know about you, but in some ways, I miss working with those languages. They were simple, yet it was amazing what could be accomplished. Do you remember Pascal or how about COBOL (Common Business Oriented Language)? COBOL was quite wordy, which meant a lot of typing, but I enjoyed working with it. I wonder if it is still in existence anyplace?

  TotallyConfused


----------



## arthurnottheking (Jan 9, 2020)

Hi Nej, some people are just talented and some need to learn hard to understand even the basics. I myself was rather slow in school. What I really liked was literature cause I was an avid reader and could not spend an hour without a book (I read even during breaks too). It all depends on the end goal anyway: I wanted to become a pro, but I didn't become an Excel ninja, though I tried by best to learn as fast as I could. It's nearly high time for my internship, so I will need to show all the skills and even more.


----------



## arthurnottheking (Jan 9, 2020)

arthurnottheking said:


> Hi Nej, some people are just talented and some need to learn hard to understand even the basics. I myself was rather slow in school and to do my essay was a pain for me. What I really liked was literature cause I was an avid reader and could not spend an hour without a book (I read even during breaks too). It all depends on the end goal anyway: I wanted to become a pro, but I didn't become an Excel ninja, though I tried by best to learn as fast as I could. It's nearly high time for my internship, so I will need to show all the skills and even more.




Edit: mnemonics (memory devices as they are often called) help a lot, when you're trying to learn something fast.


----------



## DataBlake (Jan 10, 2020)

I believe as opposed to knowledge what is needed for programming is passion. I learned everything i know about VBA from this very forum. I am now at a point where in order to perfect what i know, and expand my knowledge i try my best to teach and help. I dropped out of college, and although i graduated high school a year early, I would not say i am 'good' or 'smart' in any given academic subject. I do believe that if you have enough passion for something you can learn anything just by stumbling head first into it.

My first encounter with VBA was with a job at a skate shop where we sold online dropship skate apparel. This is where i would be introduced to macros and how to move the same sets of data around. Hence my account name! I no longer work there but the passion i picked up for automation and how cool it was to program something intricate landed me in new opportunities. I now handle a companies' online dropship orders where we have over 70k listings on eBay that i use VBA to manage. I created an entire program within excel to update quantities, remove listings with low quantities, swap out descriptions and titles, change pricing, etc (with the help of Mr Excel of course)

I have to give credit where credit is due; Fluff is a Mr Excel MVP that has really helped me grow my knowledge of VBA and its application to my needs. Easily my most valued "Teacher" that i would not be able to have in a classroom. So just throw yourself into the thick of it and you'll find helpful, like-minded people to help.


----------



## ashakantasharma (Jun 6, 2020)

I think it's the PASSION that leads people in an expert domain....


----------

