Jump to content

You're browsing the 2004-2023 VATSIM Forums archive. All content is preserved in a read-only fashion.
For the latest forum posts, please visit https://forum.vatsim.net.

Need to find something? Use the Google search below.

Learning programming


Grant Williams
 Share

Recommended Posts

Grant Williams
Posted
Posted

Hello, World! (haha... get it)

I am taking a leap and going to start investing some time into learning Python. I would eventually like to develop some sort of program (I have ZERO coding experience) that is helpful to flight simmers.

What kind of small, simple program do you think would be helpful to an average simmer and be something that would be good experience for a new programmer to try and develop?

Thank you! 

(Also, any tips or resources that you know of for Python are welcome! I am currently using freecodecamp)

Link to comment
Share on other sites

Alistair Thomson
Posted
Posted

Python is an interpreted language rather than a compiled one. What that means is that you can code in Python and anyone who has an interpreter for the language will be able to run your code. This makes for easy distribution from your point of view - just send them the code - but it puts the load on the folks who want to run it: they need to have the interpreter software. It isn't a deal-breaker though: you can send your code including an interpreter. Trouble is that the interpreter significantly increases the size of your package. So for a simple "Hello World" program your code would just be a few lines, maybe 10K, but if you include the interpreter it gets many, many times bigger.

The alternative is to write your code in a compiled language like C. What happens then is that you push your code through a compiler which converts it to a .exe file (machine code) so that any PC can run it. And if the code is small, the .exe will be small. The trouble with that is that it becomes your responsibility to do the compiling and that can sometimes be a bit complicated - but still not a deal-breaker.

The good news is that with modern languages once you have learned one, the others become easier, because they all do similar things in similar ways using similar programming structures. At least, that's true of high-level languages like Pascal and C where you aren't messing about with assembly code (although assembler is pure fun - and I choose the word "pure" deliberately).

So for learning a language, Python is good because you can simply run your code right away, avoiding the write-link-compile-run loop, which can be tiresome when learning to program. Once you're a hot programmer in Python, you'll find it easier to learn other languages and get into the code compilation world.

Regarding what sim-compatible program you could write, I'd suggest that you shouldn't start with that aim. There is a LOT to learn before you'll be able to create resources robust and significant enough to be useful to other folks. :)

Alistair Thomson

===

Definition: a gentleman is a flying instructor in a Piper Cherokee who can change tanks without getting his face slapped.

Link to comment
Share on other sites

Ross Carlson
Posted
Posted (edited)
20 hours ago, Grant Williams said:

What kind of small, simple program do you think would be helpful to an average simmer and be something that would be good experience for a new programmer to try and develop?

My learning of new languages or techniques has always been driven by what I personally need for myself, rather than what others might find useful. If others find it useful, that's just icing on the cake. (And usually, what works for me tends to work well for others, so my cakes usually end up with a lot of icing on them. :classic_biggrin:)

So I would encourage you to choose a project that solves a problem or satisfies a need for you specifically, and start with that.

Edited by Ross Carlson

Developer: vPilot, VRC, vSTARS, vERAM, VAT-Spy

Senior Controller, Boston Virtual ARTCC

Link to comment
Share on other sites

Grant Williams
Posted
Posted
On 12/16/2020 at 4:04 PM, Alistair Thomson said:

Regarding what sim-compatible program you could write, I'd suggest that you shouldn't start with that aim. There is a LOT to learn before you'll be able to create resources robust and significant enough to be useful to other folks. 🙂

Good advice! Definitely don't want to bite off more than I can chew. 

I was thinking something like a v-speed calculator - since not every plane can calculate that and it is sometimes a guessing game for simmers.

Do you think that would still be too involved for a novice programmer? It would essentially function like a calculator wouldn't it?

Thanks for the advice!

Link to comment
Share on other sites

Jacob Boyles
Posted
Posted

My advice on the difficulty to shoot for would be try to find something that is slightly above what you think you can do and 'learn up' to the problem. So you may not know how to do it at first but take some time and research, look at examples, etc, and then try to build it.

Your issue would essentially be plugging values into a equation. It would also depend on how complex you want to make it, you can take many things into account such as temperature, runway conditions, etc.

Everyone does learn differently but for me I learn by doing, so the best way for me to learn is to go for something that I don't know how to do, and then just figure it out.

JACOB BOYLES
Senior Developer
## [email protected]
Facebook     Twitter     Instagram
VATSIM Logo
Link to comment
Share on other sites

Tobias Dammers
Posted
Posted
13 hours ago, Grant Williams said:

I was thinking something like a v-speed calculator - since not every plane can calculate that and it is sometimes a guessing game for simmers.

Sounds like a great project to get you started, except for one caveat - V-speed calculations are different for each aircraft type, and the algorithms are not generally public information. For the E-Jet I built for FlightGear, I ended up typing over V-speed tables from the FCOM, and programming multidimensional lookups into those - this isn't difficult at all, but very tedious. And that was just 5 aircraft types, with only two sets of lookup tables (because E170/E175 are largely the same, as they share aero surfaces and engines; and so are E190/E195/Lineage 1000).

A similar project you might consider is a "swiss army knife of aviation-related calculations" - think things like calculating pattern entries, wind corrections, all sorts of unit conversions, descent calculations, you name it. You can start with one tool, and add more as you go.

23.png
Link to comment
Share on other sites

Grant Williams
Posted
Posted
On 12/21/2020 at 2:04 AM, Jacob Boyles said:

My advice on the difficulty to shoot for would be try to find something that is slightly above what you think you can do and 'learn up' to the problem. So you may not know how to do it at first but take some time and research, look at examples, etc, and then try to build it.

Your issue would essentially be plugging values into a equation. It would also depend on how complex you want to make it, you can take many things into account such as temperature, runway conditions, etc.

Everyone does learn differently but for me I learn by doing, so the best way for me to learn is to go for something that I don't know how to do, and then just figure it out.

Thank you for the advice! I am very similar in that I also learn by doing. Practicing is the best way to get good at something.

On 12/21/2020 at 8:43 AM, Tobias Dammers said:

Sounds like a great project to get you started, except for one caveat - V-speed calculations are different for each aircraft type, and the algorithms are not generally public information. For the E-Jet I built for FlightGear, I ended up typing over V-speed tables from the FCOM, and programming multidimensional lookups into those - this isn't difficult at all, but very tedious. And that was just 5 aircraft types, with only two sets of lookup tables (because E170/E175 are largely the same, as they share aero surfaces and engines; and so are E190/E195/Lineage 1000).

A similar project you might consider is a "swiss army knife of aviation-related calculations" - think things like calculating pattern entries, wind corrections, all sorts of unit conversions, descent calculations, you name it. You can start with one tool, and add more as you go.

I like the swiss army knife concept. That will be much simpler I think than what I was thinking with the vSpeed calculator.

Thank you!

Link to comment
Share on other sites

 Share