Front Office Football Central  

Go Back   Front Office Football Central > Main Forums > Off Topic
Register FAQ Members List Calendar Mark Forums Read Statistics

Reply
 
Thread Tools
Old 10-13-2021, 07:08 PM   #1
korme
Go Reds
 
Join Date: May 2001
Location: Bloodbuzz Ohio
PING: Programmers

The pandemic did one good thing for me - I quit bartending after about 10 years of doing so, and decided to get back into school. I would say the process leading up to re-enrolling has been a slow burn, but the pandemic expedited things.

I decided to hop into a community college program focused on software development. This is my first semester actually taking classes geared towards this field, and I'm crushing 3 of the 4 classes.

The class I'm struggling with the most is the most important one. It is Intro to C++. I'm getting the basics and while it's still not second hand nature for me, I know that I can eventually hang in this field.

However, I am struggling. This class is completely online, so I have no interaction with an instructor - I mean, they are there, but not responsive, or very late to respond - I mostly watch assigned YouTube videos and then do my own external googling to solve problems.

So each week we have a new assignment, and each week I find myself going backwards, copying and pasting basic code to get a start and then cycling through past tutorials to build out whatever it is I'm supposed to do. It feels very fraudulent (and also, not very efficient), I don't feel like it's sticking.

I guess my question is if anyone has tips on how to better go about learning this crash course.. i.e, any websites I should be directed to, etc.


Last edited by korme : 10-13-2021 at 07:10 PM.
korme is offline   Reply With Quote
Old 10-13-2021, 07:16 PM   #2
NobodyHere
Grizzled Veteran
 
Join Date: Nov 2013
I've used this site often whenever I need to reference a certain syntax or something:

C++ Tutorial
__________________
"I am God's prophet, and I need an attorney"
NobodyHere is offline   Reply With Quote
Old 10-13-2021, 07:23 PM   #3
cuervo72
Head Coach
 
Join Date: Dec 2002
Location: Maryland
Bah, half my programming is cutting and pasting stuff from other sources. IMO the biggest thing is having a plan for what you want to do, then finding the functions, libraries, or similar programs that you need to get there. Figure out the logic first, then worry about the syntax. Especially if you have to deal with a number of different languages.

(Then again, I'm probably a bit of a programming fraud too. )
__________________
null
cuervo72 is offline   Reply With Quote
Old 10-13-2021, 07:42 PM   #4
korme
Go Reds
 
Join Date: May 2001
Location: Bloodbuzz Ohio
Quote:
Originally Posted by cuervo72 View Post
Bah, half my programming is cutting and pasting stuff from other sources. IMO the biggest thing is having a plan for what you want to do, then finding the functions, libraries, or similar programs that you need to get there. Figure out the logic first, then worry about the syntax. Especially if you have to deal with a number of different languages.

(Then again, I'm probably a bit of a programming fraud too. )

I mean, that is nice to hear. My brother's neighbor kind of told me the same thing. I'm just worried about getting *too* reliant on the web and not actually picking up on this stuff, or the bigger picture. Maybe I just need to get a better focus.
korme is offline   Reply With Quote
Old 10-13-2021, 07:43 PM   #5
korme
Go Reds
 
Join Date: May 2001
Location: Bloodbuzz Ohio
So maybe I shouldn't be freaking out after only playing with this stuff for 7 weeks?
korme is offline   Reply With Quote
Old 10-13-2021, 09:17 PM   #6
cuervo72
Head Coach
 
Join Date: Dec 2002
Location: Maryland
Yeah, probably too early to freak out. Really the important things IMO are understanding control structures, how variables work, how function calls work, scoping, objects, libraries. I guess for C++ (which I have not used in oh, 20 years) there's the whole compiling aspect. I more deal with scripting languages so that's not a worry. But I'd say nail down the theory behind how things are supposed to work and worry less about syntax. (I mean, syntax is important for actually getting something compiled, but you're going to be dealing with different syntaxes across different languages but the building blocks will stay the same for the most part).
__________________
null
cuervo72 is offline   Reply With Quote
Old 10-13-2021, 09:36 PM   #7
Solecismic
Solecismic Software
 
Join Date: Oct 2000
Location: Canton, OH
I've been doing this (mostly in C++) for about 30 years now. New development often means searching online and looking through differing opinions and code segments. I am terrible at remembering syntax. If Visual Studio didn't have auto-complete and variable hints for functions, I'd spend half my time reading manuals.

Sometimes the language changes, like the vector stuff, because no one likes rigorous garbage collection and the ability to control array sizes dynamically opens up new avenues. But get the concepts down and you'll have the ability to evaluate the quality of what you find in searches.

I think a solid grounding in C++ gives you the ability to handle many of the modern scripting-type languages that seem to drive a lot of things these days. Many people are also using Go Language, which is essentially a large subset of C++ on the fly with less overhead and some nice shortcuts. I've started using it instead of perl for quick data-only analysis.

Don't be afraid to ask questions. There are a lot of programmers out there who think it's great fun to say, "only a moron would ask that, you should do this instead." And then they mention a function that barely tangentially relates to what you're trying to do. It's unfortunate there are a lot of those people out there, so you learn not to take it personally.

The best skill you can have with this is the ability to keep trying things out, not to be afraid to spend a couple of hours going down some road that might not lead anywhere. It happens all the time - even decades after getting to a decent level of proficiency.

I know what you mean about feeling fraudulent. There's no guarantee in programming that you will learn the concepts that will allow you to evaluate your own code. That just takes time. Like writing, only practice, in the end, will get you to the next level. If you have that curiosity, stick with it. Nothing's better, even decades later, than seeing a complex algorithm come to life properly.
Solecismic is offline   Reply With Quote
Old 10-13-2021, 09:42 PM   #8
Coffee Warlord
Head Coach
 
Join Date: Oct 2002
Location: Colorado Springs
I would also reccommend, if you really want to get into coding. And if you have the extra time. Come up with an idea for a side project you WANT to do, doesn't even have to be huge, and do it. Doesn't have to be anything you show anyone, just something cool you'd like to do.

Btw Jim, I didn't realize you were at least partially a Perl guy. So few of us left.
Coffee Warlord is offline   Reply With Quote
Old 10-13-2021, 09:51 PM   #9
Solecismic
Solecismic Software
 
Join Date: Oct 2000
Location: Canton, OH
Quote:
Originally Posted by Coffee Warlord View Post
I would also reccommend, if you really want to get into coding. And if you have the extra time. Come up with an idea for a side project you WANT to do, doesn't even have to be huge, and do it. Doesn't have to be anything you show anyone, just something cool you'd like to do.

Btw Jim, I didn't realize you were at least partially a Perl guy. So few of us left.

My first job after graduation was working in AIX on a RISC/6000, developing transaction programs. I don't even remember the names of half of the languages I've used along the way.

There was once a full FOF game engine running on perl/cgi. You could chose a team and call the plays. Couldn't for the life of me figure out what to do with it. Neither could my producer at EA, so I never did anything with it.
Solecismic is offline   Reply With Quote
Old 10-14-2021, 07:49 AM   #10
Drake
assmaster
 
Join Date: Feb 2001
Location: Bloomington, IN
To follow up on the copy/paste stuff -- most of my professional career has been leaning heavily on sites like Stack Overflow for examples of how to do things/solve problems I couldn't figure out on my own.

Watching how other people attack a problem similar to the one I'm facing usually results in a lightbulb moment where I finally understand the underlying logical "how".

But if all else fails, I'll just copy/paste and document the link I stole the solution from. :P

(You're a leg up on me, though. I got into programming 20 years ago without any formal training. There were things I knew how to do, but didn't understand that they were standard programming problems until my son was a computer science major in college.)
Drake is offline   Reply With Quote
Old 10-14-2021, 08:26 AM   #11
Bobble
College Prospect
 
Join Date: Nov 2006
Location: High and outside
I'm just a hack programmer and I agree with what everyone else says about "copy with pride" but -- and it's been 30 years since I've been in school -- can you do that in an education setting? I know the schoolmarm won't be standing beside your desk as you code but how much are you allowed to "research" while you're taking your final?
Bobble is offline   Reply With Quote
Old 10-14-2021, 08:53 AM   #12
Castlerock
High School Varsity
 
Join Date: Jun 2002
Location: Boston, Ma
I second everything Jim said.

Like every software developer out there, I copy/paste all the time. My only caution would be if you don't understand the code you are copying.

If it's syntax, I wouldn't give it another thought. Even in a language I use every day and have for years, I don't get the syntax right without intellisense. And things change quickly in software development. Even if you get the syntax of one language nailed, you will soon need to learn another. As long as you understand the underlying concepts of software development, that will carry over from language to language.

When I was learning (30 years ago) we didn't have Stack Overflow and open source code. If I was going to copy something it was gonna be from a physical book and it wouldn't be exactly what you were looking to do. So you had to take the concept and make it work for you.
Castlerock is offline   Reply With Quote
Old 10-14-2021, 12:16 PM   #13
Arles
Grey Dog Software
 
Join Date: Nov 2000
Location: Phoenix, AZ by way of Belleville, IL
Good discussion. When I was learning (and still do this), I focused on completing this process:

1. high level design for the program - something like:
a. Read in data from table into a first name and last name data structure.
b. sort the data structure alphabetically.
c. Output name combinations into a text file.

2. Non-syntax based code that meets each guideline:
a/b. set recordsetFName = ODBC call to table FName, order by FName.Name asc
set recordsetLName = ODBC call to table LName, order by LName.Name asc
c. open output file "Names.TXT"
For each recordsetFName entry, loop through recordset LNAME
Store each combination in output file
close output file

3. Now code based on item 2

If you have to look up item 2 to get the proper syntax, no biggie. Atleast you have done the design and algorithm layout on your own. That is the key to coding. As you get better, you will know more syntax offhand.
__________________
Developer of Bowl Bound College Football
http://www.greydogsoftware.com

Last edited by Arles : 10-14-2021 at 12:30 PM.
Arles is offline   Reply With Quote
Old 10-14-2021, 12:31 PM   #14
RainMaker
Hall Of Famer
 
Join Date: Jun 2006
Location: Chicago, IL
Everyone here is giving great advice. My one add-on is to stick to it. It's one of those things that will just start clicking at some point.

Also, I still spend a lot of time looking up dumb shit on StackExchange.

One of my favorite tweets.

RainMaker is offline   Reply With Quote
Old 10-14-2021, 03:06 PM   #15
sabotai
General Manager
 
Join Date: Oct 2000
Location: The Satellite of Love
Not much to add. Like everyone else, I still google things for the 100th time, copy and paste old code from previous projects, lean heavily on my IDE to do half of the work for me.

Like Castlerock said, when you're done the googling and the copying, if you understand what your code is doing, you're good.

There's also a lot of programming communities online. Subreddits, Discord servers, etc. If you're frustrated at the lack of response from the teachers, you could try the /r/cpp_questions subreddit (never used it so can't vouch for it). I haven't used C++ since the early/mid 2000s (and I hope I never have to again) so I don't know any specific Discord servers for C++ noobies but I'm sure they exist.
sabotai is offline   Reply With Quote
Old 10-16-2021, 10:31 AM   #16
korme
Go Reds
 
Join Date: May 2001
Location: Bloodbuzz Ohio
Thanks, guys. A ton of encouraging stuff here. I'll deep dive into all of these links and appreciate the tips. It's just a bit overwhelming, but then again, I'm learning something almost completely from scratch, so I suppose it shouldn't be a walk in the park.
korme is offline   Reply With Quote
Old 10-16-2021, 11:39 AM   #17
NobodyHere
Grizzled Veteran
 
Join Date: Nov 2013
I'm sure all the programmers on this board will laugh at/be outraged by this story

Confused governor says looking at webpage's HTML is criminal hacking
__________________
"I am God's prophet, and I need an attorney"
NobodyHere is offline   Reply With Quote
Old 10-16-2021, 12:51 PM   #18
cuervo72
Head Coach
 
Join Date: Dec 2002
Location: Maryland
Aghast, yes.
__________________
null
cuervo72 is offline   Reply With Quote
Old 10-17-2021, 09:52 PM   #19
korme
Go Reds
 
Join Date: May 2001
Location: Bloodbuzz Ohio
Just finished my midterm project - remember this is an intro class, so it's very basic so far. Anyways, I built a program that basically has you enter a qbs game stats and it spits out the QB rating. This was 105 lines of code, it took me over four hours and it takes about 10 seconds for the user to complete the program. Lol. Coding. How exciting!
korme is offline   Reply With Quote
Old 10-18-2021, 09:34 AM   #20
Drake
assmaster
 
Join Date: Feb 2001
Location: Bloomington, IN
The first iteration always takes the longest.

Now, if there was an equivalent RB rating, you could throw up a program that calculates that in like 15 minutes (change the formula, change the input field names, add any new fields, etc)...but you've got the methodology down for solving this type of problem.

Now you tuck that code into your personal library and just recycle it any time you encounter a similar problem.
Drake is offline   Reply With Quote
Old 10-18-2021, 03:19 PM   #21
sabotai
General Manager
 
Join Date: Oct 2000
Location: The Satellite of Love
Quote:
Originally Posted by Drake View Post
Now you tuck that code into your personal library and just recycle it any time you encounter a similar problem.

It took me an embarrassingly long time to learn this lesson. I wasted so much time hunting down code in old projects instead of being proactive and creating a personal library of reusable code.
sabotai is offline   Reply With Quote
Old 10-18-2021, 08:40 PM   #22
Drake
assmaster
 
Join Date: Feb 2001
Location: Bloomington, IN
I think that's probably true for all of us. It took me an embarrassingly long time to realize that as a web developer, 90% of what I do is just a variation on a theme.

I've always assumed that somewhere out there are "real programmers" who solve brand new and interesting problems on a daily basis...but I'm not smart enough to be one of them. I know my lane and I stay in it. :P

(The other side of that coin is that once you're a web developer, you have to avoid the temptation to interpret every problem as one that can be solved by creating a form/sanitizing the input/doing database transactions. When your primary tool is a hammer, every problem can look an awful lot like a nail.)
Drake is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is On
Forum Jump


All times are GMT -5. The time now is 02:48 AM.



Powered by vBulletin Version 3.6.0
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.