Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > Hero Lab Discussion

Notices

Reply
 
Thread Tools Display Modes
ChrisRevocateur
Senior Member
 
Join Date: Aug 2011
Posts: 223

Old December 1st, 2013, 10:01 AM
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.
ChrisRevocateur is offline   #1 Reply With Quote
BoomerET
Senior Member
 
Join Date: Apr 2012
Location: Livermore, CA
Posts: 492
Send a message via ICQ to BoomerET Send a message via Yahoo to BoomerET Send a message via Skype™ to BoomerET

Old December 1st, 2013, 08:44 PM
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
BoomerET is offline   #2 Reply With Quote
privateice
Junior Member
 
Join Date: Apr 2014
Location: VA, USA
Posts: 3
Send a message via ICQ to privateice Send a message via AIM to privateice Send a message via Yahoo to privateice

Old April 5th, 2014, 10:25 AM
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.
privateice is offline   #3 Reply With Quote
Michele
Ex-Staff
Lone Wolf Staff
 
Join Date: Nov 2013
Posts: 10

Old April 15th, 2014, 03:25 PM
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!
Michele is offline   #4 Reply With Quote
rob
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 8,232

Old April 16th, 2014, 11:16 PM
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!
rob is offline   #5 Reply With Quote
RavenX
Senior Member
Volunteer Data File Contributor
 
Join Date: Jan 2011
Location: Nowhere, Virginia
Posts: 3,633

Old April 17th, 2014, 12:55 AM
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.
RavenX is offline   #6 Reply With Quote
loodwig
Junior Member
 
Join Date: May 2014
Posts: 6

Old May 9th, 2014, 10:00 PM
Quote:
Originally Posted by rob View Post
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...
+ 1/0

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!
loodwig is offline   #7 Reply With Quote
mirtos
Senior Member
 
Join Date: Oct 2011
Posts: 865

Old May 9th, 2014, 11:01 PM
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.
mirtos is offline   #8 Reply With Quote
weaverjk
Junior Member
 
Join Date: Jan 2018
Posts: 5

Old September 15th, 2021, 03:56 PM
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
weaverjk is offline   #9 Reply With Quote
Azhrei
Senior Member
 
Join Date: Sep 2015
Posts: 435

Old September 16th, 2021, 10:57 AM
Ugh, thread necro and I didn't notice. Apologies.

Last edited by Azhrei; September 16th, 2021 at 11:00 AM. Reason: removed post
Azhrei is offline   #10 Reply With Quote
Reply

Thread Tools
Display Modes

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

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -8. The time now is 04:48 AM.


Powered by vBulletin® - Copyright ©2000 - 2024, vBulletin Solutions, Inc.
wolflair.com copyright ©1998-2016 Lone Wolf Development, Inc. View our Privacy Policy here.