• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

Don't use non-western alphabets

DominiConnor

Quant Headhunter
Joined
9/6/06
Messages
1,051
Points
93
As you can imagine I have a pretty good spam filter and the majority of easily spotted crap contains Cyrillic and Chinese characters, so it often gets binned.

If you're sending a resume to me or anoyne else you think might help get you a job, I would advise you only to use western (ie ASCII) characters in the subject line and in your own email address.

In the attached PDFs, you can use pretty much what you like of course.
 
Has user @DominiConnor vanished without a trace? I am digging up some of his posts, he had interesting insights and a sharp tongue. His guide on quant jobseeking is superb, although it is dated 2007.
Has he retired from the business?
I found a couple of online articles by him from 2018, nothing since. Also his recruitment firm, all broken links, no trace left.
 
Has user @DominiConnor vanished without a trace? I am digging up some of his posts, he had interesting insights and a sharp tongue. His guide on quant jobseeking is superb, although it is dated 2007.
Has he retired from the business?
I found a couple of online articles by him from 2018, nothing since. Also his recruitment firm, all broken links, no trace left.
he neither shows up in wilmott
 
I'll quip that this stuff about encoding, on par with number data types fundamentals (single precision, unsigned int, double, long long etc), are a particularly boring aspect of learning any computer language.
Very important in real life.

Legacy code(!) ... there are > 5 different string types in Windows COM, ATL (and Excel interfacing) :)

There was a time C++ had no string class .. so I built my own .. it was a monster.
 
Very important in real life.

Legacy code(!) ... there are > 5 different string types in Windows COM, ATL (and Excel interfacing) :)

There was a time C++ had no string class .. so I built my own .. it was a monster.
I have seen that, you posted it a while ago.
I wrote one Str function when learning C++ via the accelerated C++ book, but it had far less bells and whistles than yours.
Did all these member functions end up being useful to you?
 

Attachments

  • DYNSTR.hpp
    8.9 KB · Views: 7
I have seen that, you posted it a while ago.
I wrote one Str function when learning C++ via the accelerated C++ book, but it had far less bells and whistles than yours.
]Did all these member functions end up being useful to you?
yes, we wrote a production CAD system CADObject in C++ for mech enginering using design patterns to AutoCAD and Intergraph.

Remember it was 1992 aka Dark Ages, no strings, just char*
It was also used in C++ courses.

Of courses, developers love to over-engineer things.. In the olde days, no standard interface formats, so strings were used. You young chaps have it so easy.

#include "dynstr.hxx"
#include <iostream>

int main()
{
DSDYNSTR s(" ab CdE ");
std::cout << s << '\n';

s.uppercase();
std::cout << s << '\n';

s.compress();
std::cout << s << '\n';

s.collapse();
std::cout << s << '\n';
}
 
Last edited:
yes, we wrote a production CAD system CADObject in C++ for mech enginering using design patterns to AutoCAD and Intergraph.

Remember it was 1992 aka Dark Ages, no strings, just char*
It was also used in C++ courses.

Of courses, developers love to over-engineer things.. In the olde days, no standard interface formats, so strings were used. You young chaps have it so easy.

#include "dynstr.hxx"
#include <iostream>

int main()
{
DSDYNSTR s(" ab CdE ");
std::cout << s << '\n';

s.uppercase();
std::cout << s << '\n';

s.compress();
std::cout << s << '\n';

s.collapse();
std::cout << s << '\n';
}
I am not that young myself, I can code in Fortran which is kind of a giveaway, modern fortran nonetheless.
Nowadays the number of things one has to know is staggering.
I am going to take a test as part of the interview process, with a guy that is scouring the stack site for c++ developers to hire in his company. Apparently he does not want for loops in the code, everything must be algorithms and lambda functions for reasons of readability. And if he discovers you don't plan your code top-bottom, he is going to abruptly axe you as well.
As a result of his policies he is always recruiting, but almost never hiring anyone. Good litmus test.

I was referring more at floating-point arithmetic as being tedious, not text processing. This kind of stuff:

https://uk.mathworks.com/content/da...om/moler/intro.pdf#page=35&zoom=auto,-107,197

ascii unicode etc isn't funnier either though.
 
I was just kidding about the young ones; I started as Fortrn IV programmer.

Apparently he does not want for loops in the code, everything must be algorithms and lambda functions for reasons of readability. And if he discovers you don't plan your code top-bottom, he is going to abruptly axe you as well.

This is worrying; one size fits all, no silver bullet. Real life is more subltle. It is obviously a junior developer/HR.

Lambda functions are useful, but not always. They are like Tabasco or Sudden Death... a few drops in the soup before eating ans no more.
 
Last edited:
I was just kidding about the young ones; I started as Fortrn IV programmer.

Apparently he does not want for loops in the code, everything must be algorithms and lambda functions for reasons of readability. And if he discovers you don't plan your code top-bottom, he is going to abruptly axe you as well.

This is worrying; one size fits all, no silver bullet. Real life is more subltle. It is obviously a junior developer/HR.

Lambda functions are useful, but not always. They are like Tabasco or Sudden Death... a few drops in the soup before eating ans no more.
Well a std::for_each + lambda function on a range is just a statement technically speaking, and can push aside for-looping on containers quite elegantly.

I flunked his test anyway, he asked for the implementation of an "interval map" (in map: 0->'A'; 1->'B'; 2->'B'; 3->'C' in interval map: 'A'; 1->'B'; 3->'C'; 4->'A').
There are a myriad of corner cases, I think my implementation worked, but I was told one iterator I used got deferenced past the end in one of the "if" branches for corner cases, so undefined behaviour -> fail.

On my compiler (gcc 5.1.0 from 2015 we are at 10.2 currently!) though, everything ran smoothly.
Point is, I needed to add the flag -D_GLIBCXX_DEBUG to my compilation line, in order to get the compiler to exit with a runtime error when stumbling on dereferenced iterators.
Or on any undefined behaviour, I don't know, because a google search on that flag did not produce any result.
In any case -D_GLIBCXX_DEBUG did its work and I caught the bug by myself afterwards.

This is some kind of 'trick of the trade' C++ thing that separates the wheat from the chaff, there is no way to know it in case you are not an experienced developer.
 
That's why it is so important to learn proper programming in C++, a bit like learning Italian or German. Is it just to survive on holidays or as a lifelong skill.
 
That's why it is so important to learn proper programming in C++, a bit like learning Italian or German. Is it just to survive on holidays or as a lifelong skill.
20 lines down its main usage, and after dealing with other 3 corner cases, the iterator to a deleted element had to satisfy a conditional
C++:
if (*a == *b)
    something happens
  
program keeps going

where b is another iterator. UB would have had a possibility over 4,294,967,295 to cause failure.
Typical side effect you wouldn't have a chance to catch, without turning on that compiler flag that disallows UB.
 
Last edited:
Back
Top