|
Senior Member
Join Date: Aug 2011
Posts: 223
|
So I'm just starting to go to school for Computer Science. I want to become a programmer or a software developer.
Every time I tell anyone this, they ask me what language(s) I plan on learning, and I already have some languages I am playing with. But I figure that programming is like any other art/creative science; look to the programs that you like, and learn to emulate what you like about it. To me, Lone Wolf Development is to RPG Software as Germany is to Engineering. Yeah, they aren't unsurpassably amazing, but they are consistently at the top of their game. So with that, I'd like to ask: What programming language(s) do you use for Hero Lab and/or Realm Works? I assume by the need for the .NET framework that the Visual Studio languages (Visual Basic, C++, C#) are at least partially used, and XML is obvious. Is there anything else used? What development environment(s) do you use? Again, I'm just starting on this path, so if these are trade secrets or something else that I'm not allowed to ask about, I'm sorry, and I mean no offense. I just really admire the quality of Lone Wolf's programming. |
#1 |
Senior Member
|
ChrisRevocateur,
I used to be a developer, and I loved it. My specialty was embedded systems and firmware, always in C. C++, .NET and C# weren't an option. Now I work in on-line retail, and all the development work is in Java. (Which I avoid, never did care much for OOP, stuck in my ways I guess) Once you get a solid foundation, you can come up to speed in most languages rather quickly. Best of luck in your path. BoomerET Castles & Crusades Ruleset for Hero Lab Hero Lab (5E D&D) -> Fantasy Grounds Character Converter |
#2 |
Junior Member
|
The vast number of modern languages are "C-like." If you learn C/C++, learn deconstructive programming, and learn RegEx, languages and libraries are just different permutations of the same. Perl comes in an afternoon. PHP is easy. Visual whatever is trivial. Java is more about the libraries than the language itself.
RegEx (Regular Expressions) is too often neglected in the modern teaching of software development and it is a hugely powerful tool. I wouldn't be without them. |
#3 |
Ex-Staff
Lone Wolf Staff
Join Date: Nov 2013
Posts: 10
|
Hi ChrisRevocateur,
My name is Michele and I am one of the Hero Lab developers. Hero Lab and Army builder are built in C/C++, and Realm Works is C#. Languages and API's change all the time, but you can't go wrong with a strong understanding of Object Oriented Programming with a foundation in C++. I also second privateice's advice for learning about regular expressions. Best of luck to you! |
#4 |
Junior Member
Join Date: Jan 2018
Posts: 5
|
Michele, if you are still around, would you be willing to have a short phone conversation regarding coding and tools such as Realmworks? I tried to send you a PM, but that was blocked. Thank you, John Weaver
|
#5 |
Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 8,232
|
I've been doing development for over 30 years, and there's really only one core bit of wisdom that I think is most critical. My advice is to get exposure to a wide assortment of languages if you can. There's no need to master all of them, but do some personal projects in them to get a sense of how they work. Obviously, you'll also need to master one or two of them.
The single most valuable thing you can do (IMHO) is get a fundamental understanding of all the concepts that underlie software development. If you zero in on one language, you'll often end up focusing on the implementation of that language instead of the core concepts and abstractions. By having a solid understanding of all the concepts, you'll find it comparatively much easier to move between languages, environments, problem-solving approaches, and development methodologies. Each language, environment, approach, and methodology has its pros and cons. Each is effectively a tool that you'll have in your toolbox. The more tools you have at your disposal, and the more adept you are at identifying the optimal tool for a particular task, the more successful you'll be at your craft. The only thing for certain is that things will evolve and change, but all the underlying concepts remain largely the same. If you focus on the concepts - not the language itself - you'll position yourself the best for both now AND the future. Have you ever given a young child a shiny hammer? EVERYTHING looks like a nail. The wall. The coffee table. The window. I've encountered LOTS of programmers out there who operate similarly. They know one or a couple "tools" (typically languages and environments) and then try to solve every problem with those tools. Sometimes you need a hammer. Sometimes you need a screwdriver. Sometimes you need a saw. Depth of knowledge of a particular tool is valuable, but it's also relatively common. The truly valuable developer (IMHO) is someone that has diverse knowledge and can readily bring a wide range of "tools" to bear on solving a particular problem. Those are my six cents (factoring inflation since I got my start doing this for hire). P.S. Thanks for the kudos on our products. It's greatly appreciated! |
#6 |
Junior Member
Join Date: May 2014
Posts: 6
|
Quote:
Seriously, this! Granted, I've only been a dev for a decade, but exactly this. I've fired or helped fire enough people (some with PhD's in computer science) that just get stuck in this dumb trap of "This is how software is written." Being a good developer is an invaluable skill, and I don't think it's possible for me to agree with Rob more. The only wisdom I'll try to offer (that maybe hasn't been said) is that development is one of those rare and lucky jobs where you get to mostly love what you do every day. If you can't do that, you're probably doing it wrong, and maybe shouldn't be a developer. Certainly don't become a dev for the money, because you'll make more and work fewer hours as a business analyst or stock broker or drug manufacturer. But they don't get to do what I do, and that's to build something brand new every day. Every day I have a new problem to solve, a new feature to create, a new platform to support, a new tech to understand, and an old browser to get it to work in. Every day I leave for work knowing I will do something no one has ever done before. Sure, I spend a lot of time talking with QA saying "Yeah no, you're not going to be able to play video in IE7 without flash; this is an invalid test." But I also find a way to use a clojure script that links in with a Kaiser mainframe to build a series of elements that can be manipulated using css3 transformations which take advantage of hardware acceleration on iPhones. Or I'm building a mobile android app that will allow you to track the fuel efficiency of your wife versus you when you drive, or let you see how you're doing compared to your community. TL;DR I'm always doing something new. I have an awesome life! |
|
#7 |
Senior Member
Join Date: Oct 2011
Posts: 865
|
I've been programming professionally for nearly as long as Rob, and "non-professionally" for ... well, lets just not go there.
Couldnt agree more with Rob. Programming languages are tools. You're always learning new ones, and realizing that certain tools just dont fit the job. but my suggestion: find a passion. find something that interests you. Then just jump off the deep end. For me it was writing MUDs. You willspend far too much time learning the ins and outs of something. You will learn more in "playing" than you ever will in class (I basically lived in the computer labs with my friends), and then when you go pick up your next tool, it will be second nature. I've been in jobs where they have had proprietary languages where you couldnt learn them before, but because of my desire to understand the fundamentals, it was no big deal. (one we even jokingly called C--) Last edited by mirtos; May 9th, 2014 at 11:04 PM. |
#8 |
Senior Member
Volunteer Data File Contributor
Join Date: Jan 2011
Location: Nowhere, Virginia
Posts: 3,633
|
For my degree, I was required to learn C++ and Fortran. I also had to learn Mathematica for some of my advanced courses. I am not a computer science major at all, but I needed to have a basis of programming to complete algorithms for iterative methods for solving differential equations and matrices. My knowledge of xml came exclusively from pulling hero lab open and examining what was under the hood and tinkering around with it, and asking Mathias hundreds of questions.
RavenX Pronouns: She/Her Please do not PM me to inquire about datafiles I coded "for personal use" such as Exalted, World of Darkness, AD&D, or Warhammer 40K Roleplaying. I appreciate your interest, but I do not own the Intellectual Property rights to these game systems. Nor do I have permission from any of the Publishers to distribute the data files. As such, I cannot distribute the work I have done with community on these files. They are "for personal use" only. Thank you. I am far too busy these days to answer emails. If you message me here there is no guarantee I will get back to you at all. |
#9 |
Senior Member
Join Date: Sep 2015
Posts: 436
|
Ugh, thread necro and I didn't notice. Apologies.
Last edited by Azhrei; September 16th, 2021 at 11:00 AM. Reason: removed post |
#10 |
|
|