Page 2 of 4 FirstFirst
1
2
3
4
LastLast
  1. #21
    I am Murloc! Tomatketchup's Avatar
    Join Date
    Mar 2010
    Location
    Europe
    Posts
    5,309
    Just looked up Delphi and I'm not sure if I got it right - are you guys talking about the Embarcadero Delphi IDE, which main programming language is Object Pascal?

  2. #22
    Mechagnome
    Join Date
    Nov 2010
    Location
    Germany
    Posts
    649
    Two tips that have helped me (well, I'm not really a pure programmer, but I do a fair amount of scripting and even some web apps at work):

    1.) Start with a language that seems nice to you (unless you're more or less forced into one language). For me, my two favorites are Python and Ruby.
    When you become fairly proficient in one language, it's no big deal to move to a different one, so you can't really choose a "wrong direction" so to speak. The skills you gain in one language will almost always apply to other languages as well, because programming and software engineering are skills which are fairly independent of particular languages.
    It also helps to broaden your horizon by knowing several different languages. Languages are like tools: if you pick the right one for the task at hand, you'll have it easier.

    2.) Write an own program/script/whatever that you think is a good idea to have for yourself. Maybe a tool that helps you do a task you often do. Programming is often about automating things or making things easier. It's a great feeling when you find an opportunity and do this for yourself. Also, if you have one tool that you frequently use but you wish that it did things slightly differently or with an added feature. Of course you should be reasonable in your goals - don't try to write a better browser for example. But there's a lot to gain from writing small tools, and reading code from small tools. Or small games, if you're more into that. But games often carry the additional difficulty of requiring art/design/sound work as well.

  3. #23
    Fluffy Kitten Badpaladin's Avatar
    Join Date
    May 2010
    Location
    ccaarrrrllllll
    Posts
    11,122
    Quote Originally Posted by Tomatketchup View Post
    Just looked up Delphi and I'm not sure if I got it right - are you guys talking about the Embarcadero Delphi IDE, which main programming language is Object Pascal?
    Embarcadero Delphi is an IDE which supports programming in Delphi, an object-oriented"version" of Pascal. That's the one in question.
    My Short Required Reading List: One. Two. || Last.fm

  4. #24
    Having the same problem as the op, in a Comp Sci class at high school (senior year) which is orientated around Java. We just moved on to gridworld, which after reading it's from the college board, is making me wonder why we are doing it. Adding to the fact that the Comp Sci teacher from last year quit and moved to a job at Shell, the new teacher has no knowledge of Java or Gridworld whatsoever (He knows other languages though, I think). Has just been a very demotivating experience so far, are there any tips to working with gridworld, or learning Java? Since it's basically self teach in class at this point because of the teacher.
    "Then we have found, as it seems, that the many beliefs of the many about what's fair and about the other things roll around somewhere between not-being and being purely and simply." - Plato: Republic

  5. #25
    Titan Synthaxx's Avatar
    Join Date
    Feb 2008
    Location
    Rotherham, England/UK
    Posts
    12,977
    Quote Originally Posted by Tomatketchup View Post
    I'll look into Delphi. I actually know more Python than any other programming language, which I think is a decenlty fun language, but I think it just feels kinda old, somehow. Maybe it's the IDE I'm using that's the problem, but I'll look into Delphi and then I'll see if that's fun. I haven't really heard of Delphi before though, and I did see Synthaxx's quote about it's rising popularity, but do you guys think there's any interest for it on the job market?

    Oh, and what is your recommended Delphi IDEs?
    Object Pascal is the language, Delphi is the "brand" of it if you will. There's Free Pascal as well. I personally prefer Delphi itself. The thing is, until very recently, people were looking at it and remembering the 90's (which is where it was only pitched against Visual Basic). It gave off the impression it was old, but this is simply because many of the sites that provide resources for it use very old designs. It's community isn't exactly centralized, but it DOES have a lot of support, and people who've dealt with it for years are still around. It has kept up with technology and as of a month ago, they even released a version with support for Metro (though i certainly can't vouch for it being easy to work with, no doubt that'll improve as time goes on). It's as modern as every other language out there, but where i feel it excels is how easy it is.

    If you're wanting ANY sort of GUI application, then Free Pascal/FPC is a good choice for it doesn't cost anything. It creates the standard "grey interface" applications you probably use every day (i'm not sure if it has skinning support). If you want to compile beyond Windows x86 and x64, you'll also want to look at FPC. If you're willing to sink some cash into it, Firemonkey provides Windows and OS X support but it's only available with Delphi (and not with FPC). Firemonkey is absolutely fantastic as a framework, can compile to Windows and OS X with the same code and is much more about presenting information and making responsive interfaces. If you prefer to be creative with your design, then i can't do anything but recommend it. Almost all of my applications created since January have been made in it for the simple fact i can make my interface much more user friendly and do things i couldn't otherwise.

    I'd recommend that if you do choose to go with Delphi/VCL ("Grey Interfaces") or FPC, that you stick with it until you're confident. Although Firemonkey is very similar in it's syntax and such, there are a few key differences related to properties. For example, with VCL and FPC, labels and such have a "Caption" property that is used to specify what text the label should display. With Firemonkey, it's the "Text" property you have to work with. This change makes "Typecasting" easier (typecasting is a medium-intermediate subject, but one that will change the way you code and it's not overly difficult either).

    However, if cost is an issue (i totally understand that it might be), WPF with C# would be a suitable choice. You can get the free express edition of Visual Studio which i believe allows you to create WPF applications. The interfaces are much similarly described to those of Firemonkey, but it's a different language (Delphi Pascal vs C#). This is a suitable "compromise" and while i've never personally developed in it, i've not read many major bad points about it. One benefit Firemonkey has is that you can create "hybrid components" via styling. That's one reason i use it, but i'll admit that i've come to rely on it and it's become somewhat annoying that i'm unwilling to invest the time to move over to C# because of this dependency.

    If you've already got a background in Python, keep on with it. There's very few languages that are "old and worthless" these days. The major contenders are Java, C#, C++, Delphi/Object Pascal, and Python. Each of them can do the same basic things, but what separates them is ease of understanding (this is almost entirely down to the person, not the language) and efficiency. Efficiency is only a major concern if you're doing the advanced stuff, and for the majority of applications, you don't need to worry.
    Coder, Gamer - Thoughtcloud | Node.js Monkey | Supporter of error 418 (I'm a teapot)
    Knows: Delphi, PHP, WQL/SQL, Python, JS + jQuery, HTML + CSS, Ruby, Node.js (+ Express & Socket.io)

    PC: 750D / 16GB / 256GB + 750GB / GTX780 / 4670K / Z87X-UD4H | Laptop: 8GB / 120GB + 480GB / GTX765M / 4700MQ

  6. #26
    Fluffy Kitten Badpaladin's Avatar
    Join Date
    May 2010
    Location
    ccaarrrrllllll
    Posts
    11,122
    Quote Originally Posted by Hastings95 View Post
    Having the same problem as the op, in a Comp Sci class at high school (senior year) which is orientated around Java. We just moved on to gridworld, which after reading it's from the college board, is making me wonder why we are doing it. Adding to the fact that the Comp Sci teacher from last year quit and moved to a job at Shell, the new teacher has no knowledge of Java or Gridworld whatsoever (He knows other languages though, I think). Has just been a very demotivating experience so far, are there any tips to working with gridworld, or learning Java? Since it's basically self teach in class at this point because of the teacher.
    Gridworld is just a case study meant to act as an "application" of the Object-Oriented principles you're supposed to learn, and the language it's written in is Java. If it's help with the course you need, "learning Java" won't suffice. The AP class is designed to teach you fundamentals of computer science and object-oriented programming, not Java. Java is just the language you use.

    Best advice I can give is read the textbook if your teacher sucks.
    My Short Required Reading List: One. Two. || Last.fm

  7. #27
    Quote Originally Posted by Badpaladin View Post
    Gridworld is just a case study meant to act as an "application" of the Object-Oriented principles you're supposed to learn, and the language it's written in is Java. If it's help with the course you need, "learning Java" won't suffice. The AP class is designed to teach you fundamentals of computer science and object-oriented programming, not Java. Java is just the language you use.

    Best advice I can give is read the textbook if your teacher sucks.
    Ah ok, I thought it was for learning Java, since we haven't really gotten into some of the fundamentals of computer science, mainly been doing Java. So perhaps, there is something pretty damn wrong with the way the school is running it's Comp Sci program.

    Also, we don't have a textbook, just a AP Comp Sci review book we can ask for.

    So, internet manuals during class and at home, time to hit them up heh.
    "Then we have found, as it seems, that the many beliefs of the many about what's fair and about the other things roll around somewhere between not-being and being purely and simply." - Plato: Republic

  8. #28
    Old God Frozenbeef's Avatar
    Join Date
    Aug 2009
    Location
    Uk - England
    Posts
    10,099
    I started off with vb and currently learning c#

  9. #29
    I'm taking a course in Java right now, the second of the two prerequisites for almost all the rest of the CSC courses. The first class was 100% console based, and this second one is about 50/50 console/GUI. Maybe it's different in C++ (I didn't have any programming experience prior to the first course) but from what our professor tells us, Java is mainly geared toward enterprise-level systems, and aren't really meant to have fancy GUIs.

    Anyway, the point of the classes isn't to teach Java whether it be console or GUI, it's to teach object-oriented and software engineering concepts like inheritence, polymorphism, basic data structures, some design patterns, etc. I find it to be a lot of fun. It's more about solving the puzzle than doing a lot of typing.

  10. #30
    C# .NET addict here.

  11. #31
    Quote Originally Posted by Frozenbeef View Post
    I started off with vb and currently learning c#
    why the sadface?

  12. #32
    Fluffy Kitten Badpaladin's Avatar
    Join Date
    May 2010
    Location
    ccaarrrrllllll
    Posts
    11,122
    Quote Originally Posted by Hastings95 View Post
    Ah ok, I thought it was for learning Java, since we haven't really gotten into some of the fundamentals of computer science, mainly been doing Java. So perhaps, there is something pretty damn wrong with the way the school is running it's Comp Sci program.
    Fundamentals of CS is a broad topic. For an intro class like the one you're (presumably) taking, it's probably outlining how to use things like control statements, loops, iteration and "playing" with data to get useful information. Later on you'll be learning Object-Oriented principles like inheritance, polymorphism, etc. . .the idea is that yes, you're learning some Java, but really only as a means to an end. The language is just the tool you're using to solve problems.

    If your teacher hasn't articulated that clear enough, then yeah there definitely is something wrong. If all else fails, take the same courses at a Community College through a program with your school (and obviously have it count towards college credits, I'm sure your school has some sort of system for that) to learn it better. If you've got a bad teacher who isn't teaching this stuff well early on, you're going to have a rough time with the more advanced stuff.
    My Short Required Reading List: One. Two. || Last.fm

  13. #33
    Being a nerdy kind of type a bit, I have tried to get into programming a bit. God knows how many times I've tried to learn HTML, Visual basic (.NET), small in-game "programming" or macroing, I've read books, learned some and now, I can't remember much of it at all. Some of it is useful still, I can manage my way easier around a source code than if I had not spend some time on it and done some small, very basic programming. I have tried to make a map in WC3 and tried making a simple game in Game Maker, but it all quickly stalls and get closed down because I think "this isn't fun" or "I don't like it" or "I don't care". I would certainly like to be able to program more, but I'm not because I just don't care at the end of the day. I just don't like it. In fact, I probably more verge on the side of hate than love on that scale towards programming. It's just boring.

    I would much rather game along happily and merrily and not know much (or than very basic stuff I have managed to pick up with also having a programmer as dad) about programming or its derivates. Yes, it takes some of my geek pride away. I have tried to be in Maya and 3D Studio Max, but I can't do it. It's not me.


    EDIT: If you know you like programming then I obviously cannot be of any help further because well, I don't know anything about it. Life is also about trying different things and finding out what you like and don't like, and if when you ask yourself, "what do you love?" programming doesn't come up then it probably won't be for you. We all got our own likes and interests to wrestle with and the grass may look greener on the other side and we want to be appreciated for the the talents that we don't got instead of the ones we got, but if you don't like something, or maybe even love something, then working your life in it will be a downright torture and you will, hopefully, find something else. Everyone has an interest one way or the other, but maybe one just hasn't recognized it yet or has found something that has awoken that interest. In life, we also just as much engage ourselves in realms that approach our interests and that match with our personalities and skills, kind of harboring around a core match.

    F.ex. some of the people I went with to a techinical high school had been making games since they were kids and/or would program in their spare time. You can see they like it because they enjoy the activity and not whether the game looks and plays like a bad dos game or whether their application in Excel is pretty much useless for anyone else. I just want to game.
    Last edited by Tenver; 2012-11-13 at 01:39 AM.

  14. #34
    Quote Originally Posted by Badpaladin View Post
    Fundamentals of CS is a broad topic. For an intro class like the one you're (presumably) taking, it's probably outlining how to use things like control statements, loops, iteration and "playing" with data to get useful information. Later on you'll be learning Object-Oriented principles like inheritance, polymorphism, etc. . .the idea is that yes, you're learning some Java, but really only as a means to an end. The language is just the tool you're using to solve problems.

    If your teacher hasn't articulated that clear enough, then yeah there definitely is something wrong. If all else fails, take the same courses at a Community College through a program with your school (and obviously have it count towards college credits, I'm sure your school has some sort of system for that) to learn it better. If you've got a bad teacher who isn't teaching this stuff well early on, you're going to have a rough time with the more advanced stuff.
    Thanks for clearing that up, and about the teacher, I suspect there are already several petitions against him from students/parents, not that he's bad person, he's actually pretty nice for the most part, it's just that he doesn't know the subject matter that we are learning, and he usually has trouble conveying complex teachings in English (He's Korean, English is a second language). Adding to the fact that this is the highest Comp Sci class the school offers, he really is out of his depth.

    But yeah, I will most definitely be taking this class again when I get to college, I need to know the basics or else it'll screw everything else up from then on.

    Thanks again for the detailed information! Appreciate it.
    "Then we have found, as it seems, that the many beliefs of the many about what's fair and about the other things roll around somewhere between not-being and being purely and simply." - Plato: Republic

  15. #35
    I know I need to learn the basics, but these console applications demotivate me something so extreme.
    I think that's a problem with how programming is taught these days. We no longer have a "hypercard" or some equivelent that lets you quickly get into applications that that you might actually use.

    So now I'm wondering, is programming what I really want to do? I read all about the programmers getting into it as fast as they started with the consoles
    It could be that you don't. I've been programming for a long ass time - I started with console programming but I'm not really convinced it's the best way to go. On the other hand I think the two things that made me a better programmer were learning Ruby ~10 years ago and then the time I spent working on telecom hardware - both were what you'd consider console programming.

    I went on to bigger and better things, but it all started with a single project...solve my algebra homework.
    I think that's important. Finding - projects where you actually want to use the end result.

    As a developer myself i hated the first 2 year of my uni, i had around 70-30 or even worse ratio between math / theory and actual programing.
    I suspect mine was about the same: maybe 80/20 math/programming. I actually liked the math.

    What kind of math are we talking about? Right now I'm studying trigonometry and integrals.
    • Differential equations
    • Calculus
    • Discreet math
    • Linear algebra
    • dynamical systems
    • functional, numeric, etc. analysis
    • complexity/game/graph/information theory
    • topology
    • statistics
    • logic

    My first year had two sets of calculus which pretty much everyone did okay in (first year calc isn't hard if you took it in highschool).
    It had two linear algebra courses. The first one wasn't particularly hard but it's a new way of thinking about math where you do everythig algorithmically. A lot of people struggle with it and it was a filter-class for my program (<50% of people passed) If you made it thorugh the first you'd probably do fine in the second.
    The other filter class was discrete math (proofs, graphs, trees, and all that sort of thing) which was another course people struggled with.

    After the first year the math stopped being a problem. I wouldn't say it was easy but they'd managed to get rid of anybody that couldn't work through it.

    If you consider science and engineering part of math then I also studied fluid mechanics, circuts, classical and relativistic mechanics. If you could handle the pure-math courses then these weren't particularly hard.

    By the way, when speaking of what kind of math I'm not speaking of game-related math, as said I want to make normal software (like, I dunno, Spotify), not game software.
    For what it's worth: linear algebra is something that just keeps popping up. It's impossibly useful. It's pretty rare I'd use calculus or stats very often. Some of the higher level theoretical stuff (like graph theory or complexity theory) shows up quite a bit but you'll probably study that twice: once in math and then again in comp-sci as part of an algorithms course.

    Ah ok, I thought it was for learning Java, since we haven't really gotten into some of the fundamentals of computer science, mainly been doing Java. So perhaps, there is something pretty damn wrong with the way the school is running it's Comp Sci program.
    Most high school programming courses are open to students who probably don't have the mathematical background to appreciate "computer science". The programming courses serve more as an introduction to doing neat things with a computer. They focus on syntax, maybe some basic code style, and that's about the end of it. Most highschool teachers probably didn't study programming in college and fewwer still have actual industry experience. Expecting a proper computer science education probably isn't reaosnable at that level (just like you can't really study psychology or engineering either).

    Hell even first year programming courses aren't really 'computer science' in any meaningful way (I've TA'd half a dozen of them). Mostly it's about undoing the damage done in highschool, dispelling misconceptions, and convincing you that programming is a distinct discipline with it's own rules and lexicon. They need to give you a certain shared background and a language to express your ideas with. It's just laying the groundwork for the second year. It's a lot like first year chemistry making you do a dozen titrations and lab reports for trivial nonsense to get you comfortable with what it means to do a lab and prepare a report. The science bit doesn't really start until you've made it through frosh chem. It's like earning a black belt or getting your race license: now you're ready to start the real training.
    Last edited by evn; 2012-11-13 at 02:04 AM.
    A new UI series for 5.2Steal my old UILearn about WeakAuras • Nobody to raid with right now so no PVE videos.

  16. #36
    Titan Synthaxx's Avatar
    Join Date
    Feb 2008
    Location
    Rotherham, England/UK
    Posts
    12,977
    Quote Originally Posted by evn View Post
    For what it's worth: linear algebra is something that just keeps popping up. It's impossibly useful. It's pretty rare I'd use calculus or stats very often. Some of the higher level theoretical stuff (like graph theory or complexity theory) shows up quite a bit but you'll probably study that twice: once in math and then again in comp-sci as part of an algorithms course.
    In all fairness, the spotify example they provide would really come under "utility" as a broad topic (as opposed to "entertainment" which would encompass games). Of course, math is incredibly useful, but i wouldn't say it's really pitched in for utility except in a few circumstances. For example, the most complex math i've had to do with any of my projects to date (including cancelled ones and ones not announced or never released) was with calculating the angle of the dial in VTemp according to temperature (270 degrees max, 127 celsius max, 0 minimum temp, and the 0 angle was actually to the right side). That's an incredible simple calculation and entirely basic math. There was a multiplier and an offset, but that was to account for the GUI mode (D2D or GDI).

    As said, math has it's place, but utility applications and such very rarely make use of it. I absolutely won't discount that as your knowledge and experience increases, you do indeed find more uses for it. It's just that i've found so very little reason to use any complex math. Maybe it's my approach to designing the UI first and "asking questions later" that has allowed me to work around the issues that might have otherwise prevented me from proceeding, but i've found so little use for math beyond the basics in my projects.

    If i was designing something like Spotify (note: I've never used it, so i'm going on screenshots and descriptions alone), it'd be more focused on networking and ensuring that what your application displays is true to the results it returns. The majority of it would no doubt be JSON, so parsing it to the correct element would simply be a case of referencing it to an index (which isn't math at all).

    Of course, when dealing with Algorithms, that's when you need to be careful and when it's all about math. Encryption and hashing are perfect examples. For those though, you can often get prewritten libraries that simplify it, meaning you can avoid nearly all, if not all, math equations.

    I've not been to university, or even into further education for development, so it's all opinion. It's not conjecture per se, but i would warrant that the software i've released in the past will no doubt be credit that i've got some experience with development of utility applications. Perhaps one of my upcoming projects will change my perspective (and one of them in particular will make heavy use of maths, without a doubt) but right now, i can't really say that math plays a big part in development for me.
    Coder, Gamer - Thoughtcloud | Node.js Monkey | Supporter of error 418 (I'm a teapot)
    Knows: Delphi, PHP, WQL/SQL, Python, JS + jQuery, HTML + CSS, Ruby, Node.js (+ Express & Socket.io)

    PC: 750D / 16GB / 256GB + 750GB / GTX780 / 4670K / Z87X-UD4H | Laptop: 8GB / 120GB + 480GB / GTX765M / 4700MQ

  17. #37
    When I asked a computer science graduate who is now a code writer what to start with when learning to program, he recommended Python. He showed me how he could do exactly the same thing in Python as in C++, but with about a quarter of the code (and easier code too).
    Intel i5 2500K (4.5 GHz) | Asus Z77 Sabertooth | 8GB Corsair Vengeance LP 1600MHz | Gigabyte Windforcex3 HD 7950 | Crucial M4 128GB | Asus Xonar DGX | Samson SR 850 | Zalman ZM-Mic1 | Western Digital Caviar Blue 500GB | Noctua NH-U12P SE2 | Fractal Design Arc Midi | Corsair HX650

    Tanking with the Blessing of Kings - The TankSpot Guide to the Protection Paladin - Updated for Patch 5.4!

  18. #38
    Of course, math is incredibly useful, but i wouldn't say it's really pitched in for utility except in a few circumstances. For example, the most complex math i've had to do with any of my projects to date (including cancelled ones and ones not announced or never released) was with calculating the angle of the dial in VTemp according to temperature (270 degrees max, 127 celsius max, 0 minimum temp, and the 0 angle was actually to the right side). That's an incredible simple calculation and entirely basic math. There was a multiplier and an offset, but that was to account for the GUI mode (D2D or GDI).
    I suspect we'll just go back-and-forth here. I'll disagree and point to my background and you'll do the same.

    I grant you that there's a whole class of programmers that do just fine gluing together bits of code written by other people. That's an important job, there are a huge number of problems that can be solved that way, and recycling code is one mark of a good programmer. On the other hand there are a whole pile of problems that are much less approachable without a strong understanding of math. Think of all the topics where math is the lingua franca: physics, sociology, economics, engineering, biology, robotics, signal processing: if you understand math you can solve problems in those spaces with software without needing intimate knowledge of the field itself. One of maths best qualities is that it's a standardized cross-cultural interdisciplinary language that applies to nearly all of human endeavor.

    I agree with your assertion that 'the more you know, the more you'll see it's useful". Maths are a powerful tool for expressing and investigating relationships between data. A tool well suited to that sort of work is going to be valuable to programmers because that's what so much of programming is all about. In the same way you can get buy without regular expressions, list comprehensions, recursion, or closures - you can get by without linear algebra, calculus, or discrete analysis. It might not be pretty, but you can do it.

    On the other hand there are a bunch of problems where 'higher order' maths aren't useful, just as there are problems where recursion and regexp aren't very useful. I think you'll agree that having more tools is generally a good thing and that having too few is generally a bad thing. Ultimately our disagreement will come down to a question of opportunity cost: is the time spent mastering matrix multiplication better spent studying recursion?

    I think if we continue this line of discussion it'll end up in a talk about the nature of university education or some other off topic diversion. I also think we'd end up at a bit of an impasse: we'd be arguing opinion without any real way to resolve the dispute.


    For the OP. If you're finding 'console' applications boring consider finding a better way to learn. You might have more fun learning with arduino. You can get started for < $50 and it gives you a whole bunch of neat projects you can work through. I find there's a lot to be said for the motivation you can get hacking on hardware.
    A new UI series for 5.2Steal my old UILearn about WeakAuras • Nobody to raid with right now so no PVE videos.

  19. #39
    I'm not going to go very deep here. Just one simple thing.

    C#.

    You won't regret it. Get Visual Studio 2012 and open any tutorial that talks about C#. It'll be a little confusing at start (like all programming languages), but you will learn to appreciate LINQ, XAML and the massive amount of libraries eventually.

  20. #40
    I was wondering why not more people have pointed towards C#?
    If you want to make the most basic GUI application you can simply use the plain old winforms to start creating small application that can help you with some simple things you want to automate (like moving files over your network on a regular base or something).

    You can download Visual Studio Express for free, open up a winform project, drag some buttons and fields on the ui and create an app withing 30 mins. Keep expanding and you should soon be able to get into more complex things, but this way you had a friendly introduction in basic programming.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •