Being a Programmer

Started by Kiwa, September 06, 2015, 01:50:27 am

Previous topic - Next topic

Soulshaker3

Here we use the standard languages for Web Design

  • HTML

  • CSS

  • Javascript



As for the Server Language we use C# as we only develop (at least my sector) for ASP.NET platforms (SharePoint, Umbraco, MVC, etc..)
Hellow?

Kiwa

Thanks Soulshaker!

I havent tried out CSS at all. but i often see  it paired with HTML and JS.
I have to look into how they work together.

I really enjoy JS tho. I think It's taught me the most about OOP (tho ive heard people say its not a REAL OOP language).

KK20

JS is object-oriented, but I highly don't recommend using that to learn OOP. Ever.
I've been getting asked a lot about concepts in C++, C#, and Java in my interviews. Giving an example of encapsulation via Javascript would be laughable honestly.

I've also never had a formal class in learning OOP. My high school Java was mostly "this is what this syntax does, this is how you do this, now solve this problem for me". And since I did that so well, I was able to skip the first two college courses which covered OOP in C++. So yay me teaching myself a language I never used once in the first day of class. :U

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

Kiwa

Thanks for that input KK20. Id love to hear what you reccomend, as i value your opinion. I think JS still feels linear to me. so i feel comfortable and dont feel as confused by OOP. I understand the basic idea of OOP but theres something that just doesent click yet.
I'm one of those really difficult students....My mind functions in odd ways. My friend who got me into programming used to laugh at my code when I started.
he said "how does this even work? It doesent make sense...your code is all over"
but the truth is i didnt understand it but got the results.

one day while staying up over night trying to make an RPG battle system in TI-89 Basic. I spent hours and hours and hours. around 4 AM. the sun was coming up. my room had a nice orange glow to it.
I ran the game...
CLICK!
It all made sense.

I made so many programs and games for TI-89. I understood that language so well. It was technically my gateway language.
It takes time and expermentation. and fiddling with other peoples code.
That was the first and the last language I invested that kind of time in.
My point is i havent invested enough hours in this to fully understand it.

What do you guys reccomend as a first OOP language? many webpages say Python.

Blizzard

Yeah, Python is great for beginners IMO. C# is good, too, but Python isn't strong-typed so learning stuff is easier with Python.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Ryex

that depends on what you want from an Object oriented language. I think there is a lot of undeserved hype about OOP, it's not a be all end all language type and while it does make the typical set of programming problems easier it's obscures a lot of other things that are important to understand in programming.

Python is probably the purest OOP language you'll ever find if you want to understand what OOP is about then really delve deep, Python acts as you would expect on the surface but the "Python Way" is probably the closets you'll come to a perfectionist's view of OOP but the things that ARN'T inside the "Python Way" but can be pulled off show what you can do when everything is an object.

Ruby takes a different view of OOP, most things are objects but there a lot of "messages" passed around. Playing around with the depths of ruby is probably the fastest way to figure out OOP

JavaScript is ALSO OOP dispite it's apparent lack of classes or inheritance. It uses prototype inheritance which is yet another way to view OOP.

Languages like C++ and Java CLAIM to be OOP but they only really implement the most basic of OOP principles and while learning them is a good idea professionally speaking they arn't really OOP imho.

C# has evolved over the years and is now much closer to a true OOP than the previous 2, however it still has low level and static types with compiler magic so it like there are dynamic types.

hopefully that helps.
I no longer keep up with posts in the forum very well. If you have a question or comment, about my work, or in general I welcome PM's. if you make a post in one of my threads and I don't reply with in a day or two feel free to PM me and point it out to me.<br /><br />DropBox, the best free file syncing service there is.<br />

Blizzard

C++ and Java implement only basic OOP? What are you talking about?
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Ryex

October 15, 2015, 05:20:19 pm #27 Last Edit: October 15, 2015, 09:26:37 pm by Ryex
C++ and Java treat objects (instantiated classes) as seconds class to basic types. so long as you have a strongly typed systemcertintly't have true OOP you can certainly employ OOP design principles effectively but the true strength of OOP can not be utilized in a language that wasn't designed with OOP in mind form the ground up. I might be able to explain it better with examples but I'd need to find my notes form my language design class, my memory is fuzzy.
I no longer keep up with posts in the forum very well. If you have a question or comment, about my work, or in general I welcome PM's. if you make a post in one of my threads and I don't reply with in a day or two feel free to PM me and point it out to me.<br /><br />DropBox, the best free file syncing service there is.<br />

KK20

Something about C++ being a "multi-paradigm programming language". It's above me and my levels of interest. It just feels like another one of those "the thumb is not a finger" debates.

Also found this while googling: https://www.youtube.com/watch?v=KrCAl1zhuHI
That 1:30 mark and on...

As for Kiwa's question, Python and Ruby seem to be the general consensus.

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

Blizzard

October 16, 2015, 03:51:38 am #29 Last Edit: October 16, 2015, 04:00:34 am by Blizzard
C++ is meant to be an extension of C so it can have procedural code as well as object code (that's the multi-paradigm programming language part). But nothing limits C++ in being completely object oriented (except the main function). Just because it supports another paradigm, doesn't mean it's doesn't support OOP completely.
As for your video, yes. I never said it's a pure OOP. I said it implements all requirements of OOP which Ryex says it doesn't. It think it's stupid to define an OOP language by having restrictions what the language is allowed to do. That limits the evolution of the language itself. But LMAO at bashing Java. xD

@Ryex: I have never heard about OOP requiring that the language isn't strong-typed. Or other weird restrictions about what a language isn't allowed to do or have. In that case I never want to work in a full-OOP language. Strong typing is one of the best things in system design, because it forces the user to respect certain rules of the system and not fuck things up since 50% of all programmers start hacking as soon as you give them the chance.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Kiwa

I found this artacle online. I thoguht people could take from it.
I'll link the page and spoiler the list.

Source:
Ten Tips for Young Programmers
http://flip.it/Z4pvN

Spoiler: ShowHide

Writing code is like doing magic. Just say the right words, and amazing stuff happens. Or, horrible things happen. Becoming a great programmer isn't easy. It takes time. For young coders, I'm going to give ten tips to help you along that path.

1. Take Your Time

It takes years to get good at coding, so be patient. Your first projects will be weak, no matter how smart you are. If you're coding every day you'll be decent after five years, and good after ten. And after twenty years you may become great.

2. Write Code, Write Code

There's a myth that superb coders are born. Yes, you need talent, yet above all you need practice. Code every spare minute. You need to practice for years, alone and with others. It won't make you rich, it will make you better. Coding is like playing music. Play the same tune a hundred times, and each time you will learn something new.

3. Develop Your Strengths

Discover what you are good at: everyone is different. Maybe it's problem solving. Maybe it's teaching others. Maybe it's long, deep focus on difficult concepts. The best sign you're good at something is you enjoy doing it. Over time you'll become better at other aspects of coding.

4. Learn to Work With Others

Alone, you'll always be mediocre. Only when you work with others can you really shine. Learn to let others compensate for your weaknesses. Look for teams that need you and that can challenge you. Join open source projects. Learn open source culture. Learn from others, and especially their mistakes.

5. Use Science, not Magic

Most of the software industry is plain wrong. Learn to recognize and reject magical arguments. Science is about solving real problems with wild, irresponsible answers, and harsh error correction. Don't follow fashion. Take the next most urgent problem. Write a minimal plausible solution. Test that, and keep it only if it seems to work.

6. Trust Your Instincts

We're born with good instincts for working with others. Education and work beat these out of us. Most of all we learn to accept discomfort and pain. Learn to trust your instincts. If something you're doing seems wrong, fix it. Even if it takes a decade: write it down, understand it, and fix it.

7. Work With What You Have

Work with the problems, tools, and people you have at hand. Focus on getting it right, minimal, and modest. Don't wait for tomorrow's technology to arrive. Don't try to invent the future. Just get to work making real solutions to real problems. The future will invent itself.

8. Embrace Criticism

Lose your ego. When someone criticizes your work it can hurt. Yet it's far worse to be ignored. Ask people for critiques. Make your work public and open source, when you can. Now and then you'll hit a troll who really tries to hurt you. It's never personal. Learn to shrug that off.

9. Keep Your Costs Low

Cheap is important. Learn to use Linux, and a cheap or second-hand PC. Learn the command line. Stick with small languages like C, instead of massive languages like C++. Learning a larger language does not make you a better programmer.

10. Publish Your Work

Put your code out there, using your real name. Become a contributor to open source projects. If they don't want you, find projects that do. Build up your public profile, e.g. on GitHub. It's your future resume.

Blizzard

That's some really good advice. :nod:
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.