Hi, I started learning Fortran in 2026. It’s my first programming language and I started that because it looked interesting. And Fortran is surprisingly comfy language. But I have questions… Mostly because of how useful it is. I wonder if it will be any use to find a job without PHD in science, math or CS with Fortran, or it’ll just stay only as fun hobby in that case? And if it’s possible to work without PHD and experience then in what sphere? Sorry if question pretty stupid, yeah…
Hello @Hlora1337 welcome to the discourse.
I am very happy to see you picking up Fortran as your first language. I would also suggest you try to learn some Python or Julia so that you can get a feel for other languages and compare and contrast things like performance, libraries, etc. Sometimes the best Fortran comes after being frustrated with python for a bit!
Also learning how to interface Fortran to other languages using the iso_c_binding module can make it waaay stronger from a CV perspective. This means that you can write blazing fast Fortran and connect it to a python/julia skeleton which is super easy to type in.
Fortran is indeed heavily represented in scientific computing, like chemistry, physics, weather, computational fluid dynamics, etc. You do not need a PhD to contribute to these codes, the math helps but in the end things are code and that is simple to understand.
A lot of the people in this discourse don’t have a PhD and contribute to the overall language regularly. I believe that learning Fortran will make you stronger when you start learning other things like C/C++, etc.
If you get really good at it you can do consultancy work for large Fortran codebases, I know people that do that.
Hope this helps, feel free to ask more questions!
Fortran is useful, but there is a lot of other things to learn in order to really solve problems on a computer.
AFAICT, Fortran (in the U.S.) is mostly used by scientists with graduate degrees and engineers with a Bachelor’s at minimum. While nothing is impossible if you know the right people, most jobs in these sectors would require a specific degree in order to pass an initial HR screen.
I think it is a mistake to view of things in terms of “X programming language” jobs, although that is common in IT.
@jorgeg and @R_cubed already made a lot of good points. To add: You do not need a PhD for many (if not most?) of the “Fortran programmer” positions. For example, weather services will often look for a Fortran programmer with a degree in maths/comp. sc./physics/meteorology, but a PhD would overqualify you. PhDs demonstrate that you can work independently as a researcher on a project. If that’s not part of the job, you’ll likely “just” need a degree, and I imagine there’s some flexibility there if you can demonstrate your skill.
Fortran is surprisingly comfy language
I agree. I also found it more intuitive than many other languages.
Thank you for explanation. I wanted to check something like Julia, also wondered about R or something close to it, just out of sport interest, when I’ll feel more confident in Fortran I’ll try few more things.
And I also wondered about HPC since it is kinda good for Fortran sphere (correct me if I’m wrong, want to learn and understand better), and I wonder what people need for that except C/C++, Fortran and OpenMP. If it’s even actual, since it’s from AI answers and I dunno if it’s true or just LLM hallucination.
Thank you again for spending time on my questions
You can get through most of HPC using Fortran, the only true pain in the neck is using MPI because we use modules in Fortran and they are compiler specific. Therefore, you need a specific MPI installation for each co
MPI will give you multi node parallelism while OpenMP can give you shared memory parallelism and GPU access. You can see an example on how to use GPUS here, how to use MPI.
Here some random crap I’ve written.
And here is an app written entirely in Fortran that leverages large scale MPI parallelism.
To add to this: In some cases, the language does not matter at all; just the service you provide. For example, if you attained a geography degree and decide to become a freelance consultant who delivers products derived from satellite images (real case), your clients will not care what language you used for your analyses.
That. I never needed to look at C/C++ and have been working (with Fortran) on HPC systems since 2012. (Though C is unquestionably a good language to look at, even if you don’t end up working with it much).
I see. And last few questions (at least for now) are:
How long it really takes to get a real job with Fortran. Just wondering if it’s more into quick start or need a lot of time to learn everything
And how useful it is to join any seminars or conferences even if online-only?
The job question is hard, you need to build up your “street cred” a bit if you want to get something in the community. Start contributing to open source projects, make your own, attempt to fix some issues, look at the stdlib, look at lfortran, etc.
I would not bet my entire career on Fortran - find something cool to do with Fortran and things will start finding you.
I can help with chemistry and a bit of climate.
There are a few posts on this discourse with suggestions on how to get started with that. Most recently this one.
I think many people use Fortran to solve problems (which means one do not have to be Fortran language lawyer level). I guess perhaps it is the solving-problem part that is where one most likely would get a job.
If you mean by can one get a job just and simply by being an extremely good Fortran programmer itself? I guess the golden time for that was from 1960s to 2000s (if not earlier).
Or if could be extremely good at Fortran, perhaps you may join some Fortran compiler development teams. But that probably also need to be very good at C/C++, and know some assembly language.
Julia is a great choice. Both the code and speed are similar to modern Fortran. Graphics are (IMHO) much superior. Libraries allowing use of GPU’s and MPI are also available.
The Julia community is at least as active and helpful as the Fortran community.
I started using Julia as a replacement for Mathematica. Turns out it’s also capable of replacing Fortran.
YMMV.
My experience with Julia is that it is great until you’re going beyond a couple of nodes. At scale I feel happier with things being written in C/C++/Fortran. I’ve had bad experiences with julia’s MPI and Python’s MPI4py once I went big.
There’s just something quite powerful to link specifically and know exactly what each function and routine call is doing. Julia and Python hide a bit of this behind extremely powerful APIs.
I saw a forum from the JuliaCon conference where they were talking about the problems of running HPC workflows using Julia and they are quite similar to those Python encounters. None of their problems resonated with my experience with working at scale with C,C++, and Fortran.
Fortran’s MPI can be a pain because the mpi_f08 is not instrumented with all compilers so you might not get the best profiler information.
I translated a Fortran application I wrote (a simple one, albeit) to Julia and the speed was basically the same. It was impressive.
@dwannetts do you know if Julia can now create small standalone binaries like Fortran can, without shipping the compiler/interpreter as part of the binary, bloating it? I haven’t looked lately, but this used to be a big problem.
I think Julia is a nice replacement for Matlab and Python, but it is not faster than Fortran with good compilers. So I view Fortran as a nice replacement for Julia once you need performance, lean binaries, fast ahead of time compilation, etc. Julia currently has nicer tooling and libraries, but we are catching up.
I believe HPC is still Fortran’s high ground. For anyone who might be interested in the Julia HPC discussion @jorgeg mentioned, I guess this is what he is referring to (correct me if I am wrong): JuliaHPC Panel Discussion | Giordano, Blaschke, Kimmerer | JuliaCon Global 2025
Yeah that’s exactly the panel I referenced in my previous comment!
Yes. I like Julia, but with Fortran caught up on tooling, libs, and interactivity, I’d view Fortran as the better Julia (for my work/projects at least) and don’t think I’d find a good reason to use Julia, personally.
@certik . Yes, distribution remains an issue.
Julia uses the same LLVM backend as a bunch of languages, and my experience has been that performance is similar to these languages. Close enough that for my problems (numerical electromagnetic modelling for exploration geophysics), it’s a non-issue.
It does occur to me that the topic may have been hijacked, so I would like to return to the OP’s question.
Fortran is an excellent language for problem-solving. It’s fast, versatile, and scales really well. It has an excellent, responsive community, that appears to be growing. @certik ‘s efforts in this space are to be commended. The LFortran project appears to provide a path between conventional compile-link-debug development and the REPL-based environments that tend to facilitate rapid development.
If the OP’s intent is problem-solving, it’s been my experience that Fortran is a very useful tool. I suggest that they wouldn’t be disappointed if they chose Julia.
If the intent is simply “programming”, with the implication that there’s a wide, directly applicable market, then there may be better choices.
The differences are in how the different languages generate and use LLVM IR. For example in my experience Rust generates slower code than Clang (usually within 2x though), due to the various runtime checks and language restrictions (that can be removed with unsafe, but that defeats the reason to use Rust in the first place for me). I haven’t benchmarked Julia in a long time, but usually due to not requiring to type everything, it depends on runtime JIT compilation, so it will fundamentally have a different performance characteristics than Fortran’s ahead of time optimized LLVM build.